Variation de E. touches, e. targetTouches et E. changedTouches

Disons que j'écoute touchstart, touchmove et touchend sur l'élément body.

Laissez-moi savoir si je me trompe, mais je pense que e.touches est le même que e.targetTouches? Si oui, comment e.changedTouches varie en relation avec eux?

Je veux dire, étant donné une touche à un moment donné, je récupère le touchevent et l'analyse. Dans mon expérience, les trois variables tactiles sont les mêmes.

Je dois envoyer les données analysées au serveur et il est assez redondant d'envoyer trois fois la même chaîne exacte, n'y en a-t-il pas façon de les envoyer une fois et de reproduire par programme le touchevent sur le serveur?

50
demandé sur Benjamin W. 2011-08-14 13:24:14

1 réponses

Nous avons les listes suivantes:

  • touches: une liste d'informations pour chaque doigt touchant actuellement l'écran
  • targetTouches: comme les touches, mais est filtré uniquement aux informations pour les touches de doigt qui ont commencé dans le même nœud
  • changedTouches: Une liste d'informations pour chaque doigt impliqués dans l'événement

Pour mieux comprendre ce qui pourrait être dans ces listes, passons en revue quelques exemples rapidement. Ils varient selon les règles suivantes:

  • Quand je pose un doigt vers le bas, les trois listes auront les mêmes informations. Ce sera dans changedTouches parce que mettre le doigt vers le bas est ce qui a causé l'événement
  • Quand je mets un deuxième doigt vers le bas, {[0] } aura deux éléments, un pour chaque doigt. targetTouches disposera de deux éléments seulement si le doigt a été placé dans le même nœud que le premier doigt. changedTouches aura les informations relatives au deuxième doigt, car c'est ce qui a causé l'événement
  • Si je mets deux doigts vers le bas à exactement au même moment, il est possible d'avoir deux éléments dans changedTouches, un pour chaque doigt
  • Si je bouge mes doigts, la seule liste qui changera est changedTouches et contiendra des informations relatives au nombre de doigts qui ont bougé (au moins un).
  • Quand je lève un doigt, il sera retiré de touches, targetTouches et apparaîtra dans changedTouches puisque c'est ce qui a causé l'événement
  • enlever mon dernier doigt laissera touches et targetTouches vides, et changedTouches contiendra des informations pour le dernier doigt
157
répondu Andrei Zisu 2018-05-17 07:04:32