Nehmen wir an, ich höre zu touchstart
, touchmove
und touchend
auf der body
Element.
Lassen Sie mich wissen, wenn ich falsch liege, aber ich denke e.touches
ist das gleiche wie e.targetTouches
? Wenn das so ist, wie e.changedTouches
variiert in Bezug auf sie?
Ich meine, bei einer Berührung zu einem bestimmten Zeitpunkt hole ich das Touchevent und parse es. Meiner Erfahrung nach sind alle drei Berührungsvariablen gleich.
Ich muss die geparsten Daten an den Server senden und es ist ziemlich überflüssig, dreimal genau dieselbe Zeichenfolge zu senden. Gibt es keine Möglichkeit, sie einmal zu senden und das Touchevent programmgesteuert auf dem Server zu reproduzieren?
Wir haben folgende Listen:
touches
: Eine Liste mit Informationen für jeden Finger, der gerade den Bildschirm berührt
targetTouches
: Wie Berührungen, wird aber nur auf die Informationen für Fingerberührungen gefiltert, die innerhalb desselben Knotens begonnen haben
changedTouches
: Eine Liste mit Informationen für jeden am Ereignis beteiligten Finger
Um besser zu verstehen, was in diesen Listen enthalten sein könnte, gehen wir schnell einige Beispiele durch. Sie variieren nach folgenden Regeln:
- Wenn ich einen Finger nach unten drücke, haben alle drei Listen die gleichen Informationen. Es wird drin sein
changedTouches
weil das Herunterdrücken des Fingers das Ereignis verursacht hat
- Wenn ich einen zweiten Finger auflege,
touches
hat zwei Elemente, eines für jeden Finger. targetTouches
hat nur dann zwei Elemente, wenn der Finger im selben Knoten wie der erste Finger platziert wurde. changedTouches
enthält die Informationen zum zweiten Finger, da dieser das Ereignis verursacht hat
- Wenn ich zwei Finger genau gleichzeitig auflege, ist es möglich, zwei Elemente darin zu haben
changedTouches
eine für jeden Finger
- Wenn ich meine Finger bewege, ändert sich nur die Liste
changedTouches
und enthält Informationen, die sich auf so viele Finger beziehen, wie sie sich bewegt haben (mindestens einer).
- Wenn ich einen Finger hebe, wird er entfernt
touches
, targetTouches
und erscheint darin changedTouches
da es das Ereignis verursacht hat
- Das Entfernen meines letzten Fingers wird gehen
touches
und targetTouches
leer und changedTouches
enthält Informationen für den letzten Finger