我使用jQuery移动V1.3.2jQuery Mobile的,INIT绑定页面事件只有一次
对于一些原因,我想成立一个全球性pagechange
事件准备所有我的网页:
var Front = {
initDom : function($dom) {
// here i can bind some events in my page
$(".someButton",$dom).bind("tap",function(){
alert("some actions");
});
// etc.....
});
}
$(document).on("pagechange", function(event, data) {
Front.initDom($(data.toPage));
});
这很好。但是每次换页都会触发它。有时它会两次启动相同的事件,这会导致一些错误。
现在我已经测试过要处理事件pageinit
或pagecreate
,但两者都在页面准备就绪之前触发并且$("ui-page-active");
为空。
我虽然关于一些setTimeout,但这绝对是一个坏主意。
我也尽管在第一个pageinit
初始化所有内容并解除绑定。但称为页面的Ajax不会受到约束。
它有一些很好的workarround?
如果你想一次做一下第一页只有当DOM准备就绪时,才可以使用'.one(“pagebeforeshow”)或'pageshow'。要添加绑定/附加侦听器,请使用'pageinit'通过其'ID'委托给页面。 – Omar 2014-11-04 14:55:20
是的,它会工作,但我在全球范围内这样做。对于所有页面。不仅用于某些页面。 – 2014-11-04 14:56:23
这取决于你想要做什么。 http://stackoverflow.com/a/20459433/1771795 – Omar 2014-11-04 15:41:07