загрузка javascript и ajax, затем эффекты - PullRequest
1 голос
/ 27 августа 2009

У меня есть код JavaScript, посредством которого я пытаюсь загрузить список с отдельной страницы (используя функцию load () jQuery), выдвинуть текущий список и вставить новый список.

Теперь я не хочу, чтобы старый список скользил до тех пор, пока новый список не будет полностью загружен. Может кто-нибудь сказать мне, как этого добиться, не глядя, как сценарий имеет вторые мысли во время выполнения ..

Спасибо.

Редактировать

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

Извините, что не вставил код. Однако я не знаю, насколько это поможет ...

Ответы [ 2 ]

5 голосов
/ 28 августа 2009

Это должно сделать это:

$("#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;
});
1 голос
/ 06 июня 2012

Вы также можете попробовать это:

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

Это сработало лучше для меня, когда вы загружаете страницу, как только эффект slideUp сделан.

...