在通过AJAX拉入的页面上运行就绪功能

时间:2009-12-18 21:09:22

标签: jquery ajax

当我通过具有就绪功能的ajax调用页面时,我只能使用此方法使其工作:

$('div#tab1').empty().html('<img src="Loading.gif">');
$.ajax({
  url: "external.html",
  cache: false,
  success: function(html){
  setTimeout(function(){$('div#tab1').load('external.html')}, 2000);
  }
});

问题是这是在tabset的第二个选项卡上,所以如果有人在超时之前没有点击第二个选项卡,则就不会触发就绪功能。如果我删除setTimeout和loading.gif并且只使用普通的ajax调用它也不会触发ready函数。我能够让它工作的唯一方法是使用setTimeout。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您是否意识到您的“ajax”调用不会使用AJAX返回的数据?你应该能够用

替换所有这些
$('div#tab1').empty().html('<img src="Loading.gif">');
$('div#tab1').load('external.html');

如果您担心缓存,请在加载参数的末尾添加时间戳。

当数据成功写入DOM时,应准备好文档。你好,你的ajax应该是这样的:

$('div#tab1').empty().html('<img src="Loading.gif">');
$.ajax({
  url: "external.html",
  cache: false,
  success: function(html){
  $('div#tab1').html( html );
  }
});