Кажется, при вызове delay
(или любых других анимации для этого вещества) на настраиваемую очереди вам необходимо также установить, что очередь в движении первой помощи .dequeue()
Когда .dequeue()
называется, следующая функция на очередь удаляется из очереди, а затем выполняется. Эта функция должна по очереди (прямо или косвенно) вызывать .dequeue()
, чтобы последовательность могла продолжаться.
$('#example').click(function() {
$(this).delay(1000, 'fx2').queue('fx2', function(next) {
alert('here');
// start the next anim in the queue...
next();
}).dequeue('fx2');
});
jsbin preview
Обратите внимание, что обратный вызов на queue
принимает функцию в качестве первого аргумента. Это функция, которую вы хотите вызвать, когда ваша анимация завершена, чтобы следующий элемент в очереди мог выполняться.
код JQuery ручки 'автоматического запуска' в fx
очереди в $.fn.queue()
function:
if (type === "fx" && queue[0] !== "inprogress") {
jQuery.dequeue(this, type);
}
выполнить ли 'click' обработчик на всех? – SLaks