当我通过具有就绪功能的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。
有什么建议吗?
答案 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 );
}
});