load()回调在加载完成之前返回

时间:2012-12-20 12:00:11

标签: jquery callback load

在我的页面上,我有以下文档就绪功能:

$(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吗?

2 个答案:

答案 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 ()