单击链接后jQuery $ .get无法正常工作

时间:2011-11-23 14:17:31

标签: jquery ajax

我有这个代码从我的论坛获取最新主题并显示在页面上,但如果我点击HOME按钮,它链接回同一页面,它不会显示页面上的内容。但如果我点击浏览器刷新按钮就可以了。

这是代码

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

1 个答案:

答案 0 :(得分:0)

首先,在使用jQuery Mobile框架时,您应该使用正在加载的页面的'pageinit'事件而不是$(document).ready()。原因是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.
});