最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

jquery - javascript and ajax load, then effects - Stack Overflow

programmeradmin1浏览0评论

I have a javascript code, whereby I'm trying to load a list from a separate page (using jQuery's load() function), slide the current list out and slide the new list in.

Now, I don't want the old list to slide until after the new list has been pletely loaded. Can anyone tell me how to achieve this without looking like the script is having second thoughts while execution..

Thank you.

Edit

$('.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;
});

Sorry for not putting the code in. However, I don't really know how much help this is...

I have a javascript code, whereby I'm trying to load a list from a separate page (using jQuery's load() function), slide the current list out and slide the new list in.

Now, I don't want the old list to slide until after the new list has been pletely loaded. Can anyone tell me how to achieve this without looking like the script is having second thoughts while execution..

Thank you.

Edit

$('.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;
});

Sorry for not putting the code in. However, I don't really know how much help this is...

Share Improve this question edited Aug 27, 2009 at 20:16 Indranil asked Aug 27, 2009 at 19:58 IndranilIndranil 2,4611 gold badge24 silver badges32 bronze badges 3
  • I am having second thoughts about answering this question. please clarify. – Byron Whitlock Commented Aug 27, 2009 at 20:01
  • Second thoughts as in? Basically, when I try using the callback of jquery's load function, the effects flicker in and out. It slides up, slides itself back down(meaning the new page hasn't loaded yet), then displays the new content. – Indranil Commented Aug 27, 2009 at 20:08
  • Why would you not post any code?! Seriously. – Josh Stodola Commented Aug 27, 2009 at 20:13
Add a ment  | 

2 Answers 2

Reset to default 5

This should do it:

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

If you call the slideDown method in load's callback (or any of the other ajax methods), that will ensure the animation happens after the element has been filled with the response.

EDIT: To apply that to your code:

$('.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;
});

You can also try this:

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

It worked better for me, as you load the page once the slideUp effect is done.

发布评论

评论列表(0)

  1. 暂无评论