|
|
Синтаксис и описание:
Добавлено в jQuery 1.4.clearQueue( [ queueName ] )
Команда .clearQueue() удаляет из указанной очереди все ещё не выполненные функции — как встроенные анимационные эффекты, так и произвольные функции, добавленные вручную через .queue().
Примечание: Отличие от .stop(true): оба убирают из очереди fx ещё не начатые эффекты, но .stop() вдобавок останавливает текущую анимацию на месте (.stop(true, true) — с переходом в конечное состояние). .clearQueue() текущий эффект не трогает — он доиграет до конца, — а просто выбрасывает ожидающие функции, в том числе из произвольных именованных очередей, не связанных с анимацией.
Примечание: Функция, которая уже выполняется в момент вызова .clearQueue(), продолжит работу до конца — очищаются только те, что ещё ждут своей очереди.
В jQuery 3.x и 4.0: Метод не деприкейчен и не менялся. Как часть системы очередей, в slim-сборке недоступен: эффектов там нет с jQuery 3.0, а с 4.0 из slim дополнительно убраны сами модули deferred/queue — .clearQueue() для произвольных очередей в slim-сборке 4.0 тоже не будет работать.
Примеры:
Остановить накопившиеся анимации по клику — не проигрывать всю очередь эффектов.
$('#box').on('mouseenter', function() {
$(this).clearQueue().animate({ opacity: 1 }, 200);
});
Очистка именованной пользовательской очереди, не связанной с анимацией.
$('#slide').queue('steps', function(next) {
console.log('Шаг 1');
next();
}).queue('steps', function(next) {
console.log('Шаг 2');
next();
});
// Отменить оставшиеся шаги, если пользователь прервал сценарий:
$('#slide').clearQueue('steps');
[ наверх ]
|
|