Мне было интересно, как предотвратить множественные клики или одно событие запускается несколько раз из-за этих нескольких кликов.Как предотвратить несколько кликов, запускающих несколько анимаций
Предположим, что мне нужно анимировать объект. Одна кнопка вызывает анимацию, другая кнопка сбросит анимацию.
<div class="div">
Animate Me!
</div>
<div class="nav">
<div class="start">start</div>
<div class="reset">reset</div>
</div>
Мне все равно, сколько раз пользователь нажимал кнопку «звезда», анимация должна запускаться только один раз. Это не значит, что в будущем анимация не может быть запущена больше. Когда анимация сбрасывается, ее можно запустить еще раз, и так далее.
$('.start').click(function(){
$('.div').animate({
left: '+=' + 100});
});
$('.reset').click(function(){
$('.div').animate({
left: 50});
});
Вот пример того, что я готов сделать: fiddle
Попробуйте нажать столько, сколько вы можете на кнопку «старт» и анимация будет срабатывать в соответствии с количеством кликов ,
Я посмотрел в Интернете, и я узнал, что существует два способа предотвращения нескольких кликов. Однако кажется, что они не работают со мной.
1) использовать .unbind() found here:
$('.reset').unbind().click(function(){
$('.div').animate({
left: 50});
});
, но он не работает: fiddle;
2) использовать event.stopImmediatePropagation found here:
$('.reset').click(function(event){
event.stopImmediatePropagation()
$('.div').animate({
left: 50});
});
не работает ни. fiddle;
Как я могу предотвратить, что кнопка «запуска» запускает многократно анимацию? но щелкнуть, когда нажата кнопка «Сброс»?
Спасибо, я думаю, что это лучшее решение. – dcdeiv