2013-04-23 67 views
0

如何使用重新載入/刷新頁面來執行呼叫頁面?jQuery Mobile Call Page

邏輯:如果用戶成功登錄,則頁面將被移至使用HTML5存儲的管理員頁面作爲數據。

例:sessionStorage.setItem('MyID','12345');

如果成功登錄,字符串12345會被帶到一個管理員頁面。但是製作12345的過程是從登錄表單派生的。

要讀取我使用的數據:sessionStorage.getItem('MyID')在管理員頁面上。

,我遇到了當jQuery Mobile的使轉頁面,管理員頁面無法讀取數據,雖然我在數據讀出功能塊進入的問題:$(document).ready(function())

但是,如果我做了刷新/重載管理員頁面,數據然後手動正確讀取

我用:

function callAdmin(){ 
    $.mobile.changePage("admin.html"); 
} 

我該怎麼辦調用頁面刷新頁面或重新加載頁面?還是有另一種方式可以將數據結果發送到管理員頁面?

回答

2

您的主要問題在於文件準備就緒。這是一個常見的jQuery Mobile問題,您無需刷新頁面即可閱讀您的sessionStorage。

你需要做的是使用正確的jQuery Mobile頁面事件。準備好的文檔只能用於基本的jQuery。在jQuery Mobile的情況下,它通常會在頁面成功加載到DOM之前觸發。

如果您想了解更多關於此閱讀我的其他答案:jQuery Mobile: document ready vs page events

學習jQuery的第一件事就是打電話給$內部代碼(文件)。就緒()函數所以一旦DOM被加載,所有東西都會執行。但是,在jQuery Mobile中,Ajax用於在瀏覽時將每個頁面的內容加載到DOM中。由於這個$(document).ready()將在加載第一頁之前觸發,並且每次頁面操作的代碼都將在頁面刷新後執行。這可能是一個非常微妙的錯誤。在某些系統上它看起來可能正常工作,但在其他系統上可能會導致不穩定,難以重複發生。

經典的jQuery語法:

$(document).ready() { 

}); 

爲了解決這個問題(相信我,這是一個問題)jQuery Mobile的創建頁面事件發展。簡而言之,頁面事件是在頁面執行的特定點觸發的事件。其中一個頁面的事件是pageinit事件,我們可以這樣使用它:

$(document).on('pageinit', function(){ 

}); 

我們可以更進一步,並使用頁面ID而不是文件選擇器。比方說,我們有jQuery Mobile的頁面與一個ID 指數

<div data-role="page" id="index"> 
    <div data-theme="a" data-role="header"> 
     <h3> 
      First Page 
     </h3> 
     <a href="#second" class="ui-btn-right">Next</a> 
    </div> 

    <div data-role="content"> 
     <a href="#" data-role="button" id="test-button">Test button</a> 
    </div> 

    <div data-theme="a" data-role="footer" data-position="fixed"> 

    </div> 
</div> 

要執行,將只對索引頁,我們可以使用此語法代碼:

$('#index').on('pageinit') { 

}); 
+0

謝謝您的回答。 。如果我使用$(document).on('pageinit',function()我的情況將被解決? – 2013-04-23 10:06:02