Quelle est la meilleure façon de gérer longtap et double-tap événements sur des appareils mobiles à l'aide de jQuery?
Je suis à la recherche de la meilleure solution pour l'ajout de deux "doubletap" et "longtap" des événements pour une utilisation avec du jQuery live(), bind() et trigger(). J'ai roulé ma propre solution rapide, mais il est un peu buggé. Quelqu'un aurait-il des plugins de recommander, ou implantations de leur propre qu'ils aimeraient partager?
- Quel est le vôtre ressemble? On peut peut-être résoudre ce problème?
Vous devez vous connecter pour publier un commentaire.
Il a été signalé à jQuery comme un bug, mais comme doubletapping n'est pas le même que le double-cliquant sur, il n'a pas une haute priorité. Cependant, mastermind Raul Sanchez codé un jquery solution pour doubletap que vous pouvez probablement utiliser!
Voici le lien, fonctionne sur le navigateur Safari mobile.
Il est facile à utiliser:
-edit-
Et il y a un longtap plugin ici! Vous pouvez voir une démo sur votre iPad ou iPhone ici.
on()
nidelegate()
etc. C'est quelque chose, mais je ne le recommande pas à n'importe qui. Il est préférable si vous pouvez l'éviter en s'appuyant surdoubletap
.rsplak la réponse est bonne. J'ai vérifié le lien et il fonctionne bien.
Cependant, elle ne met en œuvre un doubletap jQuery fonction
J'avais besoin d'un custom doubletap événement que j'ai pu lier/délégué à. c'est à dire
Ce qui est plus important si vous êtes à la rédaction d'un backbone.js application de style, où il y a beaucoup de cas de la liaison en cours.
J'ai donc pris Raul Sanchez du travail, et l'a transformé en un "jQuery événement spécial".
Ont un coup d'oeil ici: https://gist.github.com/1652946 Pourrait être utile à quelqu'un.
dblclick
etdoubletap
:$('.myelement').bind('dblclick doubletap', function(event){ /* Stuff */ });
Il suffit d'utiliser un multitouch bibliothèque JavaScript comme Hammer.js. Ensuite, vous pouvez écrire du code comme:
Il prend en charge le toucher, le double tap, glisser, tenir, de transformation (c'est à dire, une pincée) et faites-la glisser. Les événements tactiles également d'incendie lors de l'équivalent en actions de la souris se produire, de sorte que vous n'avez pas besoin d'écrire deux ensembles de gestionnaires d'événements. Oh, et vous avez besoin du plugin jQuery si vous voulez être en mesure d'écrire dans le jQueryish façon comme je l'ai fait.
J'ai écrit, très semblable à la réponse à cette question parce que c'est aussi très populaires, mais pas très bien répondu.
Vous pouvez également utiliser jQuery Doigt qui prend également en charge de l'événement délégation:
Pour longtap:
Pour double tap:
Voici une jolie forme de base d'une fonction, vous pouvez étendre la longtap:
La longueur de temps peut être défini par l'
if
bloc dans le mouseup fonction. C'est probablement ce qui pourrait être renforcé sur une bonne affaire. J'ai un jsFiddle mis en place pour ceux qui veulent jouer avec elle.EDIT: je viens de réaliser que cela dépend
mousedown
etmouseup
être tiré avec les doigts. Si ce n'est pas le cas, alors substitut quelle que soit la méthode appropriée est... je ne suis pas familier avec le développement mobile.basé sur la dernière version de jquery docs que j'ai écrit doubletap événement
https://gist.github.com/attenzione/7098476