jquery在将新页面加载到带动画的div中时出现问题

时间:2012-07-10 20:05:46

标签: php javascript jquery

我希望有一个div,它拥有一个淡出,卸载的PHP页面,然后在每个菜单上淡入新页面:

        $('#home').click(function() {
        $('#page_container').fadeOut(500).unload();
        $('#page_container').load('php/home.php').fadeIn(550);
    });

由于某种原因,它在第一个实例淡出之前闪烁,淡出并重新加载。

有人可以帮我解决这个问题。我确信它很简单,但我似乎无法找到合适的语法来使它工作?

2 个答案:

答案 0 :(得分:2)

您应该在淡入淡出功能的回调中设置load()调用:

$("#home").on("click", function () {
    $('#page_container').fadeOut('fast', function() {
        $(this).unload();
        $(this).load('php/home.php');
    });
})

一旦淡入淡出完成,这将触发load()

fadeOut()是异步的,因此下一行在调用后立即执行。您的问题是由于load()在内容开始淡出时立即将内容加载到div中而引起的。

答案 1 :(得分:1)

如果没有演示,很难完全理解,但是你看过使用回调吗?

$('#home').click(function() {
    $('#page_container').fadeOut(500, function(){ 
        $(this).unload(); 
        $('#page_container').load('php/home.php', function(){ 
            $(this).fadeIn(550) 
        });
    });

});