这是一个愚蠢的问题,但也是一个问题。我只是希望得到" 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>
答案 0 :(得分:0)
如果您没有传递值,则此函数返回最高值:
var TopVal = $("signinput").scrollTop();
编辑:顺便说一句“在屏幕上显示后”,您是否可以使用jquery.live来搜索更新文档中的元素?否则你的JQuery选择器$(“singinput”)将为NULL:
使用:
$("#signinput").live("afterShow", function()
////一些额外的信息:
当您将数字参数传递给函数“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的答案可能是你问题的解决方案。