2016-03-30 43 views
0

Sorumu this sorusuna atıfta bulunuyor.JQuery mousdown, setInterval ile sonsuz

Şu anda this answer kullanıyorum, ancak yine de bu kodu kandırabilirim, bu nedenle clearInterval durmayacak. Sol fare tuşumu tutarken, içerikmenu açmak için doğru olana basitçe basıyorum. Şimdi clearInterval çağrılmadı.

contextmenu etkinliğini clicker'a eklerseniz, clearInterval ile çağrılır, ancak aralığı temizlemez.

See this demo

cevap

2

mousedown olaya clearInterval() ekleyin: bağlam menüsünde tetiklenecek ve aynı anda çalışan birden fazla zamanlayıcılar önleyecektir

clicker.mousedown(function() { 
    clearInterval(timeout); 
    timeout = setInterval(function() { 
    clicker.text(count++); 
    }, 500); 

    return false; 
}); 

.

Fiddle

+0

Bok, o kafamın içine attı daha belirgin daha iyi bir çözüm. Ama cevabımın önemli kısmını burada bırakacağım: Bir 'setInterval 'ayarının bir varlığa ayarlanması, aralığın kendisinin değil, yalnızca tanımlayıcı bir kayıt kaydeder. – DBS

+0

Cevabınızın iyi olduğunu ve silinmiş olduğunu görünce şaşırdım. İyi bir nokta re "Bir" setInterval "ayarlanıyor ..." –

+1

Halihazırda @DBS yanıtı yazmaya çalıştım, çünkü hızlı tıklamalar ile "aldatabiliyorum". Bunun bir değişkene çoklu erişim gerçeğinden kaynaklandığını düşünüyorum. Şu anda sizin için "hile" yapamam (@RickHitchcock);) – Steckdoserich