【发布时间】:2011-11-24 12:48:45
【问题描述】:
在 jquery 移动页面上初始化对象的正确方法是什么? events docs 表示使用“pageInit()”,没有该函数的示例,但给出了绑定到“pageinit”方法的示例(注意大小写差异)。但是,我在这个简单的测试页面中根本看不到事件触发:
<html>
<body>
<script type="text/javascript" charset="utf-8" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script type="text/javascript" charset="utf-8" src="http://code.jquery.com/mobile/1.0b3/jquery.mobile-1.0b3.min.js"></script>
<div data-role="page" id="myPage">
test
</div>
<script>
$("#myPage").live('pageinit',function() {
alert("This never happens");
});
</script>
</body>
</html>
我错过了什么?我应该补充一点,如果您将 pageinit 更改为另一个事件,例如 pagecreate,则此代码有效。
---- 更新----
这个bug 在 JQM 问题跟踪器中被标记为“关闭”。显然,对于这是否正常工作存在不同意见。
【问题讨论】:
-
我正在使用 RC1,我遇到了完全相反的问题,我添加了 pageinit 来为 ajax 调用做事件绑定。每次加载页面时都会增加对 pageinit 事件方法的调用,例如如果我访问该页面三次,在第三次访问时,相同的方法会被调用三次。任何想法。
-
@SutikshanDubey 你有没有弄清楚为什么会这样?我也有同样的问题...
-
@JLaw 这是我关于 SO stackoverflow.com/questions/7741888/… stackoverflow.com/questions/7724959/… 的问题,我正在隐藏上进行杀戮事件。但我仍然对我正在使用的解决方案不满意。
-
@SutikshanDubey 我最近发现的一件事是,每次加载我的页面时,我都会无意中创建多个事件处理程序。我在“pageshow”处理程序中有一些代码会在“click”事件上触发。每次“pageshow”触发时,都会为“click”创建一个新的处理程序。因此,我的处理程序多次关闭。也许您遇到了类似的问题?您是否有多个处理程序在不知不觉中执行相同的任务?
标签: jquery-mobile