暂停jquery函数以等待加载ajax内容,然后继续

暂停jquery函数以等待加载ajax内容,然后继续,jquery,Jquery,我有一个脚本,它根据用户单击的链接将一些html加载到div中。我正在尝试为此事件创建交叉淡入淡出类型的动画。以下是我正在使用的代码: var loadInit = $('.thumbs a:first').attr("href"); $('#loadTarget').load(loadInit); $('.thumbs a').click(function(){ var toLoad = $(this).attr('href'); $('#loadTarget

我有一个脚本,它根据用户单击的链接将一些html加载到div中。我正在尝试为此事件创建交叉淡入淡出类型的动画。以下是我正在使用的代码:

var loadInit = $('.thumbs a:first').attr("href");        
$('#loadTarget').load(loadInit);

$('.thumbs a').click(function(){
    var toLoad = $(this).attr('href');
    $('#loadTarget').hide('slow',loadContent);

    function loadContent() {
        $('#loadTarget').load(toLoad,'',showNewContent())
    }
    function showNewContent() {
        $('#loadTarget').show('slow');
    }
    return false;
});

我想做的是暂停脚本,直到loadContent函数完全加载了html和与之相关的图像。我得到这个恼人的闪光作为第一个内容是隐藏和新的内容加载。任何想法???

jQuery load有一个回调函数,在加载完成时调用该函数:

$('#loadTarget').load(loadInit, function(response) {
    alert('complete!  Returned: ' + response);
});

添加:

function loadContent() {
$('#loadTarget').load(toLoad,'',showNewContent()) //Wrong.
}
调用
showNewContent()
时,将立即执行。相反,您要做的是通过排除
()
来传递指向函数的指针


这就是导致您在立即调用showNewContent时闪烁的原因。

jQuery load有一个回调函数,在加载完成时调用该函数:

$('#loadTarget').load(loadInit, function(response) {
    alert('complete!  Returned: ' + response);
});

添加:

function loadContent() {
$('#loadTarget').load(toLoad,'',showNewContent()) //Wrong.
}
调用
showNewContent()
时,将立即执行。相反,您要做的是通过排除
()
来传递指向函数的指针


这就是当您立即呼叫showNewContent时导致闪烁的原因。

第二部分是答案。第一位实际上并不适用,因为问题发生在单击而不是首次加载时(可能)。是的,这是正确的。但是他有关于链接负载的注释,他的语法有点不正确,所以我想我应该包括它的细节。第二部分是答案。第一位实际上并不适用,因为问题发生在单击而不是首次加载时(可能)。是的,这是正确的。但是他有关于链接负载的注释,他的语法有点不正确,所以我想我应该包括它的细节。如果你发现我下面的答案是你问题的答案,请投票并将其标记为答案,以便其他用户可以找到它并解决类似的问题!谢谢如果您发现下面的我的答案是您问题的答案,请投票并将其标记为答案,以便其他用户可以找到它并解决类似问题!谢谢