En faisant une seule page Javascript application interactive des éléments du DOM, j'ai trouvé que le "mouseover-mousemove-mousedown-mouseup-click
" séquence arrive tout un tas après le "touchstart-touchmove-touchend
" la séquence des événements.
J'ai aussi trouvé qu'il est possible d'éviter le "mouse*-click
" événements de se produire, par un "event.preventDefault()
" au cours de l' touchstart
événement, mais seulement alors, et non pas lors de l' touchmove
et touchend
. C'est une étrange conception de, parce que parce que il n'est pas possible de connaître lors de la touchstart
encore si l'utilisateur tente de glisser ou faire glisser ou appuyez/cliquez sur l'élément.
J'ai fini par mettre en place un "ignore_next_click" drapeau quelque part lié à un timestamp, mais ce n'est évidemment pas très propre.
Quelqu'un sait d'une meilleure façon de faire cela, ou sommes-nous raté quelque chose?
Notez que tandis qu'un "clic" peut être reconnu comme un "touchstart-touchend
" de la séquence (c'est à dire pas "touchmove
"), il y a certaines choses, comme les touches de focus d'entrée, qui ne peut se faire que pendant un bon click
événement.