2011-11-23 102 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. 
});