2012-03-29 105 views
2

後jQuery Mobile的加載通過$ .mobile.changePage下頁內容(...)jQuery Mobile的隱藏初始頁面,而不是刪除它

我一直在尋找一種方式來刪除初始頁容器

什麼我遇到的是,這個最初的DIV元素,當第一次顯示的頁面將始終保持在頁面上創建 - 並且將只調用後隱藏 $ .mobile.changePage(...)

我需要刪除這個初始頁面容器,因爲有些舊數據駐留在那裏,應該在首頁更改時重置。

任何人都有解決方案嗎?一直在網上搜索,但無濟於事。

在我調用$ .mobile.changePage(...)之後,我也試圖做$('#first-page')。remove(),但是這會刪除初始頁面並使新加載的頁面隱!

編輯:通過清理使用html的初始DIV(「」)

+1

爲什麼您需要將初始頁面刪除?你能否更新數據的值? – shanabus 2012-03-29 16:45:39

+0

我寧願沒有不必要的DOM元素在頁面上,導致移動設備上的內存增長...但你給了我一個想法 - 也許我可以清理inital頁面元素,而不是試圖隱藏它......將嘗試儘快,謝謝! – 2012-03-29 17:41:14

回答

1

你可以只讓下一個頁面加載沒有Ajax解決,這應該刪除初始頁。

data-ajax="false"

希望這有助於!

+0

抱歉,不能這樣做...我需要保留AJAX功能 – 2012-03-29 14:59:20

+0

我通過使用.html(「」)完全清除初始頁面div來解決此問題。儘管如此,如果我不需要保存AJAX調用,那麼您的答案是有效的,所以接受:) – 2012-03-30 10:55:19

1

我認爲你是動態創建這些頁面。 API中有一個隱藏的方法,但您可以將其應用於任何頁面,然後在該頁面退出時將其刪除。

$.mobile._bindPageRemove 

因此,它可能看起來像這樣

newpage.attr("data-" + $.mobile.ns + "external-page", true).one('pagecreate', $.mobile._bindPageRemove); 

注:由於這是一個隱藏的方法,它是隱藏的API的一部分,並可能會受到在升級時,恕不另行通知更改。如果使用這個,請在​​升級後仔細測試。

+0

upvoted爲您的洞察力,雖然我真的不想使用未公開的功能......但謝謝anwyay: ) – 2012-03-30 06:51:28

0

我所做的:

$.mobile.changePage('login.html', {changeHash:false}); 

changeHash(默認值:true)類型:Boolean決定是否在 地址欄中的哈希應該更新。這具有創建新的 瀏覽器歷史記錄條目的效果。這也意味着如果設置爲false, 傳入頁面將替換瀏覽器歷史記錄中的當前頁面,因此 用戶正在瀏覽的頁面將無法通過瀏覽器的「返回」按鈕到達 。

相關問題