2010-07-30 5 views
3

J'apprends Javascript. J'ai remarqué que si je clique sur un objet plusieurs fois, rapidement, certains clics sont capturés en double-clics. Est-il possible de capturer tous les clics en Javascript en un seul clic?Est-il possible de traiter les doubles-clics comme des clics uniques en Javascript?

Merci

+3

Regardez l'événement 'mouseDown' plutôt que l'événement' click'. –

+0

Sur IE si je clique deux fois rapidement sur le bouton gauche de la souris, les événements sont: onmousedown, onmouseup, onclick, onmouseup, ondblclick. – fatcatz

+0

Je dois capturer: onmousedown, onmouseup, onclick, onmousedown, onmouseup, onclick. Si je désactive ondblclick, j'obtiens: onmousedown, onmouseup, onclick, onmouseup. onmousedown est manquant. – fatcatz

Répondre

2

En utilisant jQuery, vous pouvez créer un gestionnaire d'événements double-cliquez sur le document et éviter que le comportement par défaut:

$(document).dblclick(function(e) { 
    e.preventDefault(); 
    alert('Handler for .dblclick() called and ignored.'); 
}); 

Double click in the example pour voir le résultat.

+0

Je voudrais apprendre le Javascript sans les bibliothèques d'abord. – fatcatz

0

Il existe deux options pour résoudre ce problème.

1) en utilisant "return false"; déclaration sur un événement double-clic. Exemple:

<button id="your button id" onclick="yourfuntion()" ondblclick="return false;" >My Button</button> 

2) Désactiver le bouton/objet dans le début de votre fonction principale et à la fin de la fonction de lui permettre à nouveau.

Exemple:

<button id="your button id" onclick="yourfuntion()">My Button</button> 

<script> 

function yourfuntion() { document.getElementById("your button id").disabled = true; 
//your javascript code 

document.getElementById("your button id").disabled = false;} 

</script> 
Questions connexes