2014-11-04 67 views
0

我使用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)); 
}); 

這很好。但是每次換頁都會觸發它。有時它會兩次啓動相同的事件,這會導致一些錯誤。

現在我已經測試過要處理事件pageinitpagecreate,但兩者都在頁面準備就緒之前觸發並且$("ui-page-active");爲空。

我雖然關於一些setTimeout,但這絕對是一個壞主意。

我也儘管在第一個pageinit初始化所有內容並解除綁定。但稱爲頁面的Ajax不會受到約束。

它有一些很好的workarround?

+0

如果你想一次做一下第一頁只有當DOM準備就緒時,纔可以使用'.one(「pagebeforeshow」)或'pageshow'。要添加綁定/附加偵聽器,請使用'pageinit'通過其'ID'委託給頁面。 – Omar 2014-11-04 14:55:20

+0

是的,它會工作,但我在全球範圍內這樣做。對於所有頁面。不僅用於某些頁面。 – 2014-11-04 14:56:23

+0

這取決於你想要做什麼。 http://stackoverflow.com/a/20459433/1771795 – Omar 2014-11-04 15:41:07

回答

1

您可以使用pageinit,然後得到事件目標對象的頁面的ID:

$(document).on("pageinit", function(e){ 
    alert(e.target.id); 
}); 

DEMO

+0

這是我需要的exatly! – 2014-11-06 09:15:41

相關問題