Détecter si le navigateur / périphérique prend en charge les événements en double-clic

J’ai une table contenant plusieurs lignes. Chaque ligne est sélectionnable en cliquant une fois sur la ligne. Double-cliquez sur la ligne pour ouvrir la fiche technique représentée dans la même fenêtre.

Lors de l’utilisation d’un appareil mobile, le double clic (double appui?) Ne déclenche pas mon événement de double clic et le navigateur mobile effectue simplement un zoom.

Après y avoir réfléchi, j’estime qu’il est plus logique que les appareils mobiles ouvrent la fiche en un seul clic / tapotement.

En ce moment, je détecte s’il s’agit d’un navigateur de périphérique mobile, lors de la configuration du programme d’écoute d’événements pour la table, avec le code suivant:

if( /Android|webOS|iPhone|iPad/i.test(navigator.userAgent) ) { // Single click event bind, open } else { // Single click event bind, select // Double click event bind, open } 

Plutôt que de faire appel à l’agent utilisateur, je préférerais procéder à la détection de certaines fonctionnalités. Ainsi, tout périphérique incapable de faire un double clic fonctionne.

J’ai essayé de détecter si l’événement dblclick est disponible sur mon appareil Android, et c’est le cas.
Je suppose que cela a du sens, car le navigateur le supporte, mais le périphérique déclenche simplement un événement différent lors de la double frappe.

La seule autre chose que je pourrais trouver est de vérifier si les événements touchstart etc. sont disponibles, mais cela semble être aussi faux que de vérifier l’agent utilisateur.

Existe-t-il un moyen efficace de détecter si le navigateur / client prend en charge les doubles clics comme prévu?

Essayez peut-être d’utiliser un timeout pour vérifier s’il ya un autre clic après le premier clic

 $(Elm).click(function(evnt){ clicks++; if (clicks == 1) { setTimeout(function(){ if(clicks == 1) // Single click event bind, open else // Double click event bind, open },2000); });