С помощью jQuery.queue () вы можете добавлять несколько команд для последовательного выполнения.Как вы используете это зависит от того, что вы хотите сделать.Вот два решения:
1) нацеливание на один элемент:
$('#label')
.fadeOut() //animate element
.queue(function() { //do something method1
...your code here...
$(this).dequeue //dequeue the next item in the queue
})
.queue(function (next) { //do something method2
...your code here...
next(); //dequeue the next item in the queue
})
.delay(5000) //do lots more cool stuff.
.show("slow")
.animate({left:'+=200'},2000)
.slideToggle(1000)
.slideToggle("fast")
.animate({left:'-=200'},1500)
.hide("slow")
.show(1200)
.slideUp("normal", runIt)
.fadeIn()
2) Вы можете взглянуть на это по-другому - создать функцию очереди, которая выполняет много задач, а затем выполнять ее всякий раз, когдаВы хотите:
var $header = $("#header");
var $footer = $("#footer");
function runIt() {
$header.queue(function(next){
...do something...
next();
}
$header.queue(function(next){
functionABC(variable, next);
})
$footer.animate({left:'+=200'},2000);
$("#left").slideToggle(1000);
$(".class1").slideToggle("fast");
$(".class2").animate({left:'-=200'},1500);
$("whatever").delay(3000);
$(".class3").hide("slow");
}
runIt(); //execute it now, or...
$(window).load(function() { //execute it after the page loads!
runIt();
})
Вы также можете использовать переменную queue: false.Это означает, что очередь не будет ждать окончания этой операции, поэтому сразу начнет следующую.Полезно делать две анимации вместе:
function runIt() {
$("#first").animate(
{width: '200px'},
{duration:2000, queue:false}
);
$footer.animate(
{left:'+=200'},
2000
);
}
С AJAX очереди становятся немного сложнее.Проверьте этот пост:
AJAX Очереди на этот пост .