如何在jQuery中获取div的Top值

时间:2014-01-13 07:43:40

标签: javascript jquery html css

这是一个愚蠢的问题,但也是一个问题。我只是希望得到" Top"面板出现在屏幕上后的值。因此,当我在面板呈现其位置时进入页面时,我希望获得其最高值。以下是我使用的代码:

//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>

4 个答案:

答案 0 :(得分:0)

如果您没有传递值,则此函数返回最高值:

var TopVal = $("signinput").scrollTop();

编辑:顺便说一句“在屏幕上显示后”,您是否可以使用jquery.live来搜索更新文档中的元素?否则你的JQuery选择器$(“singinput”)将为NULL:

使用:

$("#signinput").live("afterShow", function() 

////一些额外的信息:

当您将数字参数传递给函数“scrollTop”时,您可以修改它并强制浏览器滚动此容器。

请参阅:

http://api.jquery.com/scrolltop/

答案 1 :(得分:0)

好吧,如果afterShow是你coustom事件,那么你需要在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"; 
 });

答案 2 :(得分:0)

没有afterShow事件,并且div没有加载事件,因为它立即呈现,所以您可能需要的唯一东西是DOM就绪处理程序:

$(function() {
    TopVal = $("#signinput").position().top;
    alert(TopVal);
    TopVal = TopVal+"px";
}); 

答案 3 :(得分:0)

我不知道“afterShow”会触发哪个事件,但在尝试之后,我发现当带有此触发器的元素显示时,我无法陷入此触发器。

我认为adeneo的答案可能是你问题的解决方案。