Écouter double-cliquez pas sur

Je me demandais simplement pourquoi click événement qui se passe quand je dbclick un élément?

J'ai ce code:(JSBIN)

HTML

<p id="hello">Hello World</p>

JavaScript

document.getElementById('hello').addEventListener('click', function(e){
  e.preventDefault();
  this.style.background = 'red';
}, false);
document.getElementById('hello').addEventListener('dbclick', function(){
  this.style.background = 'yellow';
}, false);

Il doit faire des choses différentes pour cliquer et double-cliquer, mais il semble que lorsque vous double-cliquez sur le p attraper click événement à l'avance et d'ignorer double-cliquez.

J'ai essayé preventDefault la click événement.
Comment puis-je écouter juste dbclick?

Mise à JOUR

J'ai eu une faute de frappe dans mon code. dbclick est faux. C'est dblclick. De toute façon le problème existe toujours. Lorsque l'utilisateur double-clique sur le click événement se produit.

C'est la mise à jour du code qui le prouvent:(JSBin)

document.getElementById('hello').addEventListener('click', function(e){
  e.preventDefault();
  this.style.background = 'red';
  this.innerText = "Hello World clicked";
}, false);
document.getElementById('hello').addEventListener('dblclick', function(){
  this.style.background = 'green';
}, false); 
  • Tu veux dire dblclick, sans doute.
  • Cette question faite à cause d'une faute de frappe. Je souhaite que je pourrais le supprimer!
  • Pourquoi?! Il y a quelques autres points importants soulevés dans les réponses. S'il vous plaît ne pas ignorer les conseils donnés juste parce que vous avez fait une faute de frappe. À la question "Comment puis-je écouter de la juste dblclick" n'est pas résolu par la fixation de votre faute de frappe.
  • vous avez raison! J'ai mis à jour la question.
  • pensez-vous stopPropagation serait de l'aide ici?
  • Nope. (Faire quoi que ce soit dans le click événement ne peut pas changer ce qui se passe selon que dblclick va arriver plus tard, à court d'invoquer un magique voyage dans le temps de la fonction.) Ma réponse est complète. Désolé.

InformationsquelleAutor Mohsen | 2011-10-26