[英]How to get the Top value of a div in jQuery
這是一個愚蠢的問題,但仍然是一個問題。 我只是想在面板出現在屏幕上之后獲取面板的“頂部”值。 因此,當我在面板呈現其位置時轉到頁面時,我想獲得其最高價值。 這是我正在使用的代碼:
//signinput is the panel whose top value I want
$("#signinput").bind('afterShow', function()
{
TopVal = $("#signinput").position().top;
alert(TopVal);
TopVal = TopVal+"px";
});
但是有些方法甚至都不會發出任何警告。 因此由於某種原因,我綁定的此函數由於某種原因而沒有運行事件。 有什么建議么?
這是我的HTML代碼:
<div id="signinput">
<div class="panel">
<center>
<h3>Sign Into Blah Blah</h3>
<form name="SignIn" action="#" method="post">
<input type="text" name="signinemail" id="signinemail" placeholder="Enter Email">
<input type="password" name="signinpassword" id="signinpassword" placeholder="Enter Password">
<input type="submit" id ="signinsubmit" name="signinsubmit" value="Sign In" data-theme="a">
</form>
</center>
</div>
</div>
如果不傳遞值,則此函數返回最高值:
var TopVal = $("signinput").scrollTop();
編輯:用您所說的“出現在屏幕上之后”的方式,是否可能是您缺少使用jquery.live在更新的文檔中搜索元素? 否則,您的JQuery選擇器$(“ singinput”)將為NULL:
采用:
$("#signinput").live("afterShow", function()
////一些其他信息:
而且,當您將數字參數傳遞給函數“ scrollTop”時,可以對其進行修改並強制瀏覽器滾動此容器。
看到:
好吧,如果afterShow是您的事件,那么您需要在document.ready函數中觸發它
嘗試這個
$(function (){
$("#signinput").bind('afterShow', function()
{
TopVal = $("#signinput").position().top;
alert(TopVal);
TopVal = TopVal+"px";
});
$('#signinput').trigger('afterShow');
});
我不確定,您為什么要使用您的自定義事件。 在document.ready內部調用top
應該可以工作(假設您在afterShow事件內部只有一個警報)。
$(function (){
TopVal = $("#signinput").position().top;
alert(TopVal);
TopVal = TopVal+"px";
});
沒有afterShow
事件,並且div沒有立即加載的load事件,因此您唯一需要的就是DOM ready處理程序:
$(function() {
TopVal = $("#signinput").position().top;
alert(TopVal);
TopVal = TopVal+"px";
});
我不知道哪個事件將“ afterShow”觸發,但是嘗試之后,我發現當顯示帶有此觸發器的元素時,我無法陷入該觸發器。
我認為adeneo的答案可能是您問題的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.