web-dev-qa-db-fra.com

event.originalEvent jQuery

Je suis actuellement immergé dans le centre d'apprentissage jQuery. Je vais du début à la fin.

Je viens de lire ce paragraphe :

Il est également important de noter que l'objet événement contient une propriété appelée originalEvent, qui est l'objet événement que le navigateur lui-même a créé. jQuery encapsule cet objet événement natif avec quelques méthodes et propriétés utiles, mais dans certains cas, vous devrez accéder à l'événement d'origine via event.originalEvent par exemple. Ceci est particulièrement utile pour les événements tactiles sur les appareils mobiles et les tablettes.

La dernière phrase, "Ceci est particulièrement utile pour les événements tactiles sur les appareils mobiles et les tablettes." , a vraiment suscité mon intérêt. mais c'est autant que le centre d'apprentissage entre dans originalEvent jusqu'à présent.

Quelqu'un connaît-il de bonnes ressources pour une étude/pratique plus intensive pour event.originalEvent spécifiquement par rapport aux événements tactiles/appareils mobiles?

41
BryanK

event.originalEvent n'est généralement que le natif event (également décrit ici ).

Cependant, si le navigateur est compatible et que l'événement était un touch event alors cette API sera exposée via event.originalEvent.

La réponse courte est que event.originalEvent n'est pas toujours le même, cela dépend du type d'événement qui a déclenché le gestionnaire et de l'environnement du navigateur.

40
Travis J

J'ai un étui que je devais utiliser event.originalEvent le problème essayait d'obtenir une instance d'un fichier déposé par glisser-déposer en utilisant l'événement drop, c'est ce qui s'est passé

var files = event.dataTransfer.files; // Gives error: trying to get property of undefined

en écrivant

var files = event.originalEvent.dataTransfer.files; // Works fine

Cela signifie que jQuery n'encapsule pas l'événement natif du navigateur avec toutes ses API comme l'API de fichier dans cet exemple, donc pour accéder à ces propriétés et fonctions exclues de l'événement jQuery, nous devons utiliser event.originalEvent. J'espère que cela aide quelqu'un.

12
Mohyaddin Alaoddin

jQuery connaît les événements standard et les conforme pour différents navigateurs. mais quand il n'y a pas d'événement standard, jQuery ne parvient pas à conformer l'objet événement mais a une sécurité intégrée originalEvent qui conserve l'objet servi d'origine par le navigateur.

par exemple mousewheel et DOMMouseScroll ont besoin event.originalEvent aussi, car il n'y a pas de support pour l'événement de roue.

3
Nereo Costacurta