У меня есть функция:Очистить Jquery очередь нажмите
$(function(){
$("#mydiv").click(function(){
if ($(this).hasClass('positive')) {
$(this).delay(400).animate({right:'-210px'},1000)
.addClass('negative').removeClass('positive')
} else {
$(this).delay(400).animate({right:'10px'},1000)
.addClass('positive').removeClass('negative')
}
}).clearQueue()
});
Но если я нажимаю на моем DIV тысячу раз, он будет выполнять анимацию в тысячу раз. Я пытался делать покупки по документации JQuery API, но ни .clearQueue()
(как в функции), ни .stop(true)
, похоже, работает.
Фантастический! Я просто не понимаю логики. Почему .stop() нужно размещать прямо там и не работает, если я поместил его после задержки? –
Если вы поместите его после задержки, то он ждет 400ms перед вызовом 'stop()'. Например, если вы посмотрите на свой пример выше, вы вызываете только 'clearQueue()' один раз (при создании обработчика), и не каждый раз, когда нажимается '# mydiv'. – Phylogenesis