Загрузка javascript и ajax, затем эффекты
У меня есть код JavaScript, посредством которого я пытаюсь загрузить список с отдельной страницы (используя функцию load() jQuery), выдвинуть текущий список и вставить новый список.
Теперь я не хочу, чтобы старый список скользил до тех пор, пока новый список не будет полностью загружен. Может кто-нибудь сказать мне, как этого добиться, не глядя, как сценарий имеет вторые мысли во время выполнения..
Спасибо.
редактировать
$('.cont a').click(function() {
var page = $(this).attr('href');
$('.p-list').prepend('<div class="loader"> </div>');
$('.p-list').load(page +" .proj").hide().fadeIn();
return false;
});
Извините, что не вставил код. Однако я не знаю, насколько это поможет...
2 ответа
Это должно сделать это:
$("#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;
});
Вы также можете попробовать это:
$("#someDiv")
.slideUp("slow", function(){
$(this).load('blah.html', function() {
$(this).slideDown("slow");
}
);
});
Это сработало лучше для меня, когда вы загружаете страницу, как только эффект slideUp сделан.