Аргументы
jQuery.queue( элемент, имяОчереди, новаяОчередь )
Добавлена в версию: 1.3
Элемент DOM, к которому прилагается массив очереди функций.
Строка, содержащая имя очереди. По умолчанию fx, стандартная очередь эффектов.
Набор функций для замены содержания текущей очереди.
jQuery.queue( элемент, имяОчереди,вызов())
Добавлена в версию: 1.3
Элемент DOM, на который добавляется функция в очереди.
Строка, содержащая имя очереди. По умолчанию fx, стандартная очередь эффектов.
Новая функцию, чтобы добавить в очередь.
Примечание:
Это метод нижнего уровня, вы должны, вероятно, использовать вместо этого .queue()
.
Каждый элемент может иметь одно или несколько очередей из функций, предусмотренных для него jQuery.
В большинстве случаев, только одна очередь (называемая fx
) используется.
Очередь позволяет выполнять последовательность действий на элемент в асинхронном режиме, без остановки выполнения программы.
Метод jQuery.queue()
позволяет нам напрямую манипулировать этой очередью функций.
Вызов jQuery.queue()
с обратным вызовом особенно полезен;
это позволяет нам размещать новые функции в конец очереди.
Обратите внимание, что при добавлении функции с jQuery.queue()
, мы должны быть уверенны, что jQuery.dequeue()
в конечном итоге вызвана так, что следующая функция выполняется в соответствии.
$(document.body).click(function () {
$("div").show("slow");
$("div").animate({left:'+=200'},2000);
$("div").queue(function () {
$(this).addClass("newcolor");
$(this).dequeue();
});
$("div").animate({left:'-=200'},500);
$("div").queue(function () {
$(this).removeClass("newcolor");
$(this).dequeue();
});
$("div").slideUp();
});
Пример 2
Задаётся массив, содержащий последовательность действий, для удаления текущей очереди.
$("#start").click(function () {
$("div").show("slow");
$("div").animate({left:'+=200'},5000);
$("div").queue(function () {
$(this).addClass("newcolor");
$(this).dequeue();
});
$("div").animate({left:'-=200'},1500);
$("div").queue(function () {
$(this).removeClass("newcolor");
$(this).dequeue();
});
$("div").slideUp();
});
$("#stop").click(function () {
$("div").queue("fx", []);
$("div").stop();
});