2010-08-26 3 views
6

Si je souscris dblclick() et que je clique sur() pour un élément DIV et double-clique avec la souris sur le DIV, le gestionnaire click() appelle d'abord avant que dblclick() ne soit appelé. Comment éviter de gérer click() avant le dblclick()?jQuery Comment distinguer click() et dblcick() pour un élément DIV?

MISE À JOUR: La question a déjà posé avant Prevent click event from firing when dblclick event fires. Mais voici aussi de bonnes réponses.

+0

Non seulement en raison de ce problème, il est généralement mal conçu d'avoir à la fois un clic et un double-clic sur le même élément, sauf si vous voulez que l'action de clic se produise également lorsqu'on double-clique. – RoToRa

Répondre

2

Probablement pas la meilleure façon de le faire: Vous pouvez définir un délai d'expiration dans la fonction de gestionnaire de clic et effacer le délai d'attente dans la fonction de gestionnaire de doubleclick. Le timeout peut appeler une fonction qui va implémenter ce que vous voulez réellement faire sur OnClick et ainsi vous pouvez avoir votre fonction dblclick() gérer ce qui se passe lorsque les utilisateurs cliquent deux fois.

+0

D'accord, c'est le seul moyen de le faire. OP doit noter que les documents jQuery mentionnent qu'il est déconseillé de lier les gestionnaires click et dblclick à un seul élément. http://api.jquery.com/dblclick/ – Aaron

Questions connexes