2013-03-22 83 views
4

此代碼用於在JQM中將以前的頁面從DOM中刪除,因此當您單擊「後退」時,它將刷新上一頁的內容。Jquery Mobile刷新上一頁後退按鈕

$('div').live('pagehide', function(event, ui) { 
    $(event.target).remove(); 
}); 

然而,這打破了最新的JQuery更新,因爲「$()。活」已被棄用,我一直無法與更新的參數「上」或「綁定」得到它的工作使用。

有沒有人找到一個適用於此的工作解決方案?

UPDATE:

,因爲我不能讓某些頁面出現在「後退」導航堆棧我不能使用「document.location」。例如,如果我去「提交頁面」,並提交它,我只需發出History.Back();呼叫,它會將您帶回更新的「詳細信息頁面」。我不希望他們點擊導航欄上的「返回」,並再次返回「提交頁面」,因爲該項目不能提交兩次。有理由我不使用對話框或彈出窗口,但這太冗長了,無法解釋。

我想:

$(document).on("pagehide", "#PageId", function() { 
     $(event.target).remove(); 
    }); 

而且它不完全工作,當我發出History.Back(它改變了URL路徑);命令,但頁面停留在「提交頁面」上。當我使用「$()。live」代碼時,它運行得非常好。也許「上」不是一個好的替代品?

+0

我建議'document.location = previous_page',但它是不是很優雅 – 2013-03-22 18:03:04

+0

'.on'是建議的替代品,你可以上張貼關於您的問題的代碼應該工作? – 2013-03-22 18:03:42

回答

3

威廉,你忘了事件參數。

如果您想全局使用它來刷新之前所有的「返回」頁面,您可以使用「div」而不是「#PageId」。只需將它放在您的母版頁的JavaScript中即可。

$(document).on("pagehide", "div[data-role=page]", function(event){ 
    $(event.target).remove(); 
}); 
3

這應該工作:

$(document).on("pagehide", "#[pageID]", function() { 
    // your code here 
}); 
+0

感謝您的反饋,我更新了主線程和我看到的結果。 – 2013-03-22 19:54:42