jQuery mobile - Pour chaque live, appuyez sur un événement devrait-il y avoir un équivalent cliquez sur l'événement?
J'ai remplacé le jQuery en direct sur les événements de jQuery mobile, appuyez sur événements pour augmenter la réactivité.
J'ai le sentiment que c'était une mauvaise idée pour des raisons de compatibilité.
Est-il nécessaire d'avoir les deux événements, et est-il possible de les écrire à la fois pour la même fonction?
Tels que ('click','tap')
Vous devez vous connecter pour publier un commentaire.
Billy réponse est incroyablement complet et réellement travaillé assez bien le peu de fois où je l'ai utilisé. En outre, cependant, vous voudrez peut-être chercher à la vmouse plugin dans JQuery Mobile, c'est une tentative de résumé des événements de la souris:
-- https://github.com/jquery/jquery-mobile/blob/master/js/vmouse.js
J'ai joué avec elle sur un projet sur lequel je travaille, il semble assez sensible ces jours-ci. Pour l'utiliser, quelque chose comme:
ou
Vous pouvez lier plusieurs événements en un seul appel comme ceci:
Ce pourrait être bien dans certains navigateurs/mobiles, cependant, cela peut rendre les manifestations de feu à deux reprises sur certains appareils qui sont assujettis à la fois le robinet et cliquez sur.
Vous pouvez résoudre ce problème en faisant une sorte de périphérique/fonction de détection et d'ajouter le gestionnaire approprié seulement comme ça...
De plus, je pense
touchstart
etmousedown
sont les meilleures activités à choisir. C'est parce que, après un contact, cliquez sur l'événement ne se déclenche pas, jusqu'à ce qu'un délai passé, comme le système permet à l'occasion d'une deuxième touche pour en faire un double-clic ou pour qu'il devienne un geste de balayage et ainsi de suite. Letouchstart
événement se déclenche immédiatement, comme le faitmousedown
devrait donc être plus réactif.touchstart
etmousedown
. Il n'est pas nécessaire d'entrer dans les détails de l'appareil sur lequel il est. C'est probablement l'approche la plus simple pour vous assurer d'obtenir le plus rapide de la réponse de la croix-plate-forme. La détection tactiles de l'appareil est aussi facile que de vérifier siTouch
est définie ou non. Donc comme ceci:(typeof Touch !== "undefined") ? 'touchstart' : 'mousedown'
Nous avons développé un petit script pour résoudre ce problème. Simplement l'inclure à un niveau global et vos événements de clic sera tiré immédiatement sans aucun problème par le report de la manifestation.
https://github.com/cargomedia/jquery.touchToClick
Il semble jQuery mobile a déjà un événement qui ne vient qu':
Vous pouvez utiliser le vmouse plugin de jQuery. Cela permettra de résoudre le 300ms de retard sur les événements de clic (mobile) ainsi que les cas où à la fois et cliquez sur le toucher des événements sont déclenchés.
Pour obtenir l'vmouse plugin, utilisez le jQuery Mobile Télécharger Générateur de. L'inclure après jQuery, mais avant tout des scripts qui dépendent de ce plugin.
L'événement pertinent est vclick, utilisation de base est la suivante: