3

在我的页面上,我有以下文档准备功能:

$(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当前页面上。在加载之前,我将当前内容替换为#mydiv动画 gif。加载完成后,动画 gif 消失,新内容进入其中。所有这一切都完美无缺。

但是,加载完成后,我想执行一个名为afterLoad. 目前,我只添加了一个alert. 奇怪的是,当仍然显示动画 gif 时,会出现警告框,所以当新内容仍在加载时。afterLoad当新内容已经到位时,是否还有另一种执行方式?

4

2 回答 2

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');
} 
于 2012-12-20T12:04:29.377 回答
3

您需要将要在回调中运行的函数作为参考传递。尝试这个:

$('#mydiv').load(toLoad, afterLoad);  // Note the removal of ()
于 2012-12-20T12:04:33.710 回答