J'essaie d'obtenir la position X avec jQuery d'un événement touchstart, utilisé avec la fonction live?
C'est à dire
$('#box').live('touchstart', function(e) { var xPos = e.PageX; } );
Maintenant, cela fonctionne avec «clic» comme événement. Comment diable (sans utiliser l' alpha jQuery Mobile) puis-je l'obtenir avec un événement tactile?
Des idées?
Merci pour toute aide.
Réponses:
Un peu tard, mais vous devez accéder à l'événement d'origine, pas à celui massé jQuery. De plus, comme il s'agit d'événements multi-touch, d'autres modifications doivent être apportées:
Si vous voulez d'autres doigts, vous pouvez les trouver dans d'autres index de la liste des touches.
MISE À JOUR POUR LES NOUVEAUX JQUERY:
la source
touchmove
.e.preventDefault()
autouchstart
gestionnaire d'événements.e.touches[0].pageX;
travaillé pour moiJ'utilise cette fonction simple pour un projet basé sur JQuery
exemple:
j'espère que cela vous sera utile;)
la source
out.x = e.pageX || e.originalEvent.touches[0].pageX;
if(e.type == 'touchstart' || e.type == 'touchmove' || e.type == 'touchend' || e.type == 'touchcancel'){
->if (e.type.startsWith("touch"))
?J'ai essayé quelques-unes des autres réponses ici, mais originalEvent était également indéfini. Lors de l'inspection, j'ai trouvé une propriété classée TouchList (comme suggéré par une autre affiche) et j'ai réussi à accéder à pageX / Y de cette façon:
la source
Si vous n'utilisez pas jQuery ... vous devez accéder à l'un des événements
TouchList
pour obtenir unTouch
objet qui apageX/Y
clientX/Y
etc.Voici des liens vers les documents pertinents:
J'utilise
e.targetTouches[0].pageX
dans mon cas.la source
Vérifiez la référence du développeur Safari sur la classe Touch .
Selon cela, pageX / Y devrait être disponible - peut-être devriez-vous vérifier l'orthographe? assurez-vous que c'est
pageX
et nonPageX
la source