我使用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