einen einzelnen Seite Javascript App mit interaktiven DOM-Elementen Dabei habe ich festgestellt, dass der „mouseover-mousemove-mousedown-mouseup-click
“ -Sequenz alle in einem Bündel geschieht nach die "touchstart-touchmove-touchend
" Sequenz von Ereignissen. während des touchstart
EreignissesVerhindern Mausemulation Ereignisse (zB Klick) von Touch-Ereignissen in Mobile Safari/iPhone mit Javascript
Ich habe auch festgestellt, dass es möglich ist, ein „event.preventDefault()
“ die „mouse*-click
“ Ereignisse zu verhindern, indem Sie tun, aber nur dann, und nicht während der touchmove
und touchend
. Dies ist ein seltsames Design, weil es nicht möglich ist, während der touchstart
noch zu wissen, ob der Benutzer beabsichtigt, ziehen oder streichen oder einfach auf das Element tippen/klicken.
Ich landete eine "ignore_next_click" -Flag irgendwo an einen Zeitstempel gebunden, aber das ist offensichtlich nicht sehr sauber.
Kennt jemand einen besseren Weg, oder fehlt uns etwas?
Beachten Sie, dass, während ein „Klick“ kann als „touchstart-touchend
“ -Sequenz (dh kein „touchmove
“), gibt es bestimmte Dinge, wie zum Beispiel Tastatureingabefokus erkannt werden, die nur bei einem ordnungsgemäßen click
Ereignisse passieren können.
Ich interessiere mich für den iPad Safari Touch-Ereignisse auch, aber es ist mir nicht klar, welche konkreten Problem, das Sie versuchen zu lösen. Wenn Sie immer noch an diesem Problem arbeiten oder es gelöst haben, kümmern Sie sich darum, es auszuarbeiten. – Tim
Ich möchte bestimmte Ereignisse wie Drag-and-Drop verarbeiten und auch "Klick" -Ereignisse verarbeiten können. Ich muss die "click" -Ereignisse als richtige "click" -Ereignisse behandeln (statt touchstart/touchend), da bestimmte Dinge wie der Tastatureingabefokus * nur * innerhalb eines Click-Event-Handlers aktiviert werden können. –
Dieses Problem ist extrem ärgerlich und betrifft auch Android. –