2013-05-09 54 views
0

我有一個Jquery移動和後退按鈕功能的問題。JQM後退按鈕丟失上一頁的數據

我有一個頁面,在顯示時在遠程服務器上運行ajax請求。 Ajax通過pagebeforeshow事件啓動。此事件被附加到與DIV [數據角色=「頁面」]屬性,因爲我使用多個HTML文件:

<div data-role="page" data-theme="b" id="Favorites"> 
    <div data-role="content" data-theme="b"> 
    <div id="Ajax"> 
      DISPLAY AJAX RESULT CONTAINING LINK TO OTHER HTML PAGE 
     </div> 
    </div> 
</div> 

這裏是JavaScript:

$('#Favorites').on('pagebeforeshow', function(event) { 
    LaunchAjax(); 
});  

這是工作的罰款當頁面首次顯示時。 但是,ajax結果包含指向用戶可以遵循的另一個頁面的鏈接。 當用戶點擊鏈接時,我會顯示一個後退按鈕(使用jquery mobile生成),以便他回到包含ajax結果的內部頁面。

但是,當單擊後退按鈕時,將啓動頁面顯示但空白。 我想通過ajax生成最後的結果,或至少重新啓動ajax函數來顯示激活結果。

我試圖與JQM緩存一起玩:

$.mobile.page.prototype.options.domCache = true; 

但這不解決我的問題和DOM元素看起來是不是由於正確(緩存也許,我使用單獨的HTML文件)

我已經在Chrome桌面和Android上使用phonegap測試了我的應用程序,但是兩者都存在此問題。

有沒有人有正確的方法來做到這一點?

非常感謝

最好的問候。

回答

1

您正在使用不正確的頁面事件綁定方式。只有成功綁定頁面事件的方法是通過委託綁定。

因此,不是這樣的代碼:

$('#Favorites').on('pagebeforeshow', function(event) { 
    LaunchAjax(); 
}); 

使用此:

$(documents).on('pagebeforeshow', '#Favorites',function(event) { 
    LaunchAjax(); 
});  
+0

非常感謝Gajotres你的答案。這解決了我的問題,並帶來正常的行爲。只有一個問題,我添加了一個用於搜索到我的頁面的輸入(因此數據在加載時不是displayd),有沒有辦法讓JQM在返回到使用後退按鈕的頁面時帶上最後的搜索結果,或者它有沒有以編程方式處理? – ehretf 2013-05-10 16:34:47

相關問題