0 oy
Programlama/Kod kategorisinde (440 puan) tarafından soruldu
$('#cisim').animate({
'left': '+=50px'
}, 500);
 
Bir buton yardımı ile cisim adındaki resmimi hareket ettirebiliyorum. Ama hızlıca 5 kere butona bastığımda (daha ilk hareket bitmeden), bastıklarımı hafızasına kaydediyor ve tüm animasyonlar oynuyor. -5 kere-
(yani 50 px * 5 = 250 px sağa gidiyor.)
 
Ben; ne kadar butona basarsak basalım, o an süren animasyon bitmeden başka bir animasyonun daha  sonra oynatılmak üzere kaydedilmesini istemiyorum.
Hızlıca 10 kere bassam bile tek sefer hareket etsin, böyle bir şey mümkün müdür?
teşekkür ederim...

1 cevap

0 oy
(10.3k puan) tarafından cevaplandı

1) o an animate yoksa animate ettirebilirsin:

$(this).filter(':not(:animated)').animate(....

http://css-tricks.com/full-jquery-animations/

2) butona tıklandığında button click fonksiyonunda disable ettirebilirsin.

$('input:submit').attr("disabled", true);

http://www.mkyong.com/jquery/how-to-disable-submit-button-after-clicked-with-jquery/

3) finish fonksiyonunu çağırabilirsin. kuyrukta olan bütün animasyonların sonuna gider:
$.finish()
http://www.bennadel.com/blog/2562-stop-vs-finish-in-jquery-animations.htm

4) butona animate sırasında tıklamayı engellemeyi click event bind/unbind ile de yapabilirsin:

$(document).ready(function() {
  $('#move_btn').bind('click', moveBox);
  function moveBox(e) {
    e.preventDefault();
    $('#move_btn').unbind();
    $('#box').animate({
      left: '+=200px'
    }, 1000, function() {
      $('#move_btn').bind('click', moveBox);
    });
  }
});


http://atomicrobotdesign.com/blog/web-development/how-to-disable-a-button-until-a-jquery-animation-has-finished/

(440 puan) tarafından yorumlandı
Söylediklerinizin hepsi çok faydalı, özellikle bind-unbind benim için çok yararlı oldu.
Fakat tüm özelliklerini kullanmak (anlamak) için biraz ing. bilmek gerekiyor - Türkçe bir site bulmak zor - ;
son olarak http://atomicrobotdesign.com/blog/web-development/how-to-disable-a-button-until-a-jquery-animation-has-finished/ adresinde Eset nod32 virüs buldu ve siteye erişimi engelledi.
usual suspecte teşekkürler..
...