1

我有一个 javascript 代码,我试图从一个单独的页面加载一个列表(使用 jQuery 的 load() 函数),将当前列表滑出并滑入新列表。

现在,在新列表完全加载之前,我不希望旧列表滑动。任何人都可以告诉我如何实现这一点,而不会看起来脚本在执行时有第二个想法..

谢谢你。

编辑

$('.cont a').click(function() {
    var page = $(this).attr('href');
    $('.p-list').prepend('<div class="loader">&nbsp;</div>');
    $('.p-list').load(page +" .proj").hide().fadeIn();
    return false;
});

很抱歉没有把代码放进去。但是,我真的不知道这有多大帮助......

4

2 回答 2

5

这应该这样做:

$("#someDiv").slideUp("slow").load('blah.html', function() {
    $(this).slideDown("slow");
});

如果您slideDown在 load 的回调(或任何其他 ajax 方法)中调用该方法,这将确保动画在元素被响应填充后发生。

编辑:将其应用于您的代码:

$('.cont a').click(function() {
        var page = $(this).attr('href');
        $('.p-list').prepend('<div class="loader"> </div>');
        $('.p-list').slideUp("slow").load(page +" .proj", function() {
             $(this).fadeIn("slow"); //or show or slideDown
        });
        return false;
});
于 2009-08-27T20:03:27.420 回答
1

你也可以试试这个:

$("#someDiv")
    .slideUp("slow", function(){
        $(this).load('blah.html', function() {
            $(this).slideDown("slow");
        }
    );
});

它对我来说效果更好,因为一旦上滑效果完成就加载页面。

于 2012-06-06T08:42:16.847 回答