簡體   English   中英

如何在jQuery中獲得div的最高價值

[英]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”時,可以對其進行修改並強制瀏覽器滾動此容器。

看到:

http://api.jquery.com/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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM