2011-11-23 101 views
1

我有這個代碼從我的論壇獲取最新主題並顯示在頁面上,但是如果我點擊HOME按鈕,鏈接回到同一頁面,不顯示頁面上的內容。但是,如果我點擊瀏覽器刷新按鈕,它的作品。

下面是代碼

$(document).ready(function(){ 
    $.get('getLatestTopic.cfm', function(data) { 
    $("#latest").html(data); 
    }); 
}); 
+0

您是否嘗試打開瀏覽器調試器?你會得到什麼錯誤?該代碼看起來很好,因爲它是一定有什麼地方錯了別的地方... –

+0

肯定這不是一些緩存問題? 'ctrl + r'或'ctrl + f5' –

+0

也許'getLatestTopic.cfm'有全部HTML''''標記,並且你正在將它修改爲'#latest',這可能是你的問題的另一個原因 –

回答

0

首先,使用jQuery Mobile框架時,你應該用你的加載,而頁面的「pageinit」事件中的$(document)。就緒( )。原因是jQuery Mobile在您瀏覽時使用Ajax將每個已定義頁面的內容加載到DOM中。這意味着DOM就緒處理程序僅針對直接加載的頁面(例如加載的第一頁或通過使用瀏覽器刷新按鈕重新加載的任何頁面)。

$('#myPage').live('pageinit',function(event){ 
    $.get('getLatestTopic.cfm', function(data) { 
     $("#latest").html(data); 
    }); 
}); 

這樣做將確保在已創建「#myPage」,並插入到DOM GET請求被髮送到「getLatestTopic.cfm」(發生一次)。這意味着如果'#latest'元素位於'#myPage'中,它將包含從'getLatestTopic.cfm'返回的數據,並且它將被緩存在DOM中。如果您想在每次加載「myPage」時執行get請求,則可以使用「pagebeforeshow」事件。

$('#myPage').live('pagebeforeshow',function(event){ 
    // This code executes every time the '#myPage' is navigated to, before it is shown. 
});