2015-08-19 57 views
1

我是jQuery開發新手。我正在創建一個單頁應用程序。從一個頁面導航到另一個頁面時,我正在調用pageinit方法。當我從兩個屏幕之間進行導航並返回時,我看到頁面init被多次調用。jQuery多次調用Pageinit

$(document).on("pageinit", '#docPage', function(event) { 
       home.doc.init(); 
       }); 

即使在導航的同時回我也呼籲解除綁定事件。

$('#BackButton').on('tap', function(event) { 
         event.preventDefault(); 

         $.mobile.changePage("homepage.html", { 
              transition: "fade", 
              reverse: false, 
              changeHash: false 
              }); 
         teardown(); 
         }); 
}; 

teardown(){ 

home.doc.unbindEvents(); 
} 

任何一個可以指導我在一個單一的頁面導航應用的最佳實踐。提前致謝。

+0

爲什麼這被標記爲ios? –

+0

我正在爲iPad開發此應用程序。我想知道是否有任何標準遵循,如果該應用程序是爲iOS平臺開發的 – Warrior

+1

您是使用jQuery Mobile和[它的pageinit事件](https://api.jquerymobile.com/pageinit/)? –

回答

0

這可能是由於pageinit偵聽器被分配了多次 - 檢查是否每次「導航」到不同的頁面時都不會重新添加。

您的解除綁定無法按預期工作。嘗試將匿名函數$(document).on("pageinit", '#docPage', function(event) { home.doc.init(); })

更改爲代碼中先前聲明的命名函數。這可以提供一些見解。