在我的页面上,我有以下文档就绪功能:
$(document).ready(function(){
$('a').click(function(){
var toLoad = $(this).attr('href')+' #newdiv';
$('#mydiv').html('<p><img src="images/ajax-loader.gif" /></p>');
$('#mydiv').load(toLoad, afterLoad());
function afterLoad() {
alert('test');
}
return false;
});
});
单击链接后,目标链接中的#newdiv
内容将加载到当前页面上的#mydiv
。在加载之前,我用动画gif替换#mydiv
的当前内容。加载完成后,动画gif消失,然后出现新内容。这一切都很完美。
但是,加载完成后,我想执行一个名为afterLoad
的新函数。目前,我只添加了alert
。奇怪的是,当仍然显示动画gif时会出现警告框,因此当新内容仍在加载时。当新内容已经到位时,还有另一种方法可以执行afterLoad
吗?
答案 0 :(得分:3)
更改为:
$('a').click(function(){
var toLoad = $(this).attr('href')+' #newdiv';
$('#mydiv').html('<p><img src="images/ajax-loader.gif" /></p>');
$('#mydiv').load(toLoad, afterLoad);
});
function afterLoad() {
alert('test');
}
答案 1 :(得分:3)
您需要传递函数以在回调中作为参考运行。试试这个:
$('#mydiv').load(toLoad, afterLoad); // Note the removal of ()