Hier ist etwas seltsam, dass ich sicher war, in früheren mobilen Browsern funktioniert: In Chrome unter Android und Safari unter iOS scheint das Touchstart-Ereignis nach das Click-Ereignis, nicht zuvor ausgelöst. Wann hat sich das geändert?Warum ist ein Touchstart-Ereignis nach dem Klick?
Ein einfaches Beispiel:
jQuery(function($) {
var touched = false;
$('#clicky').on('touchstart', function(evt){
touched = true;
evt.preventDefault();
})
.click(function(){
if (!touched) {
alert("somehow touch didn't fire")
}
});
})
Run diese Geige, und Sie werden die Warnung auf Android Pop-up sehen und iOS, wenn es sollte eigentlich nie zeigen!
http://jsfiddle.net/quxnxu7d/2/
In der Touch-Emulation in Firefox (Dev-Tools → mobile Ansicht → Touch-Ereignisse zu emulieren) funktioniert es wie erwartet. – Xufox
@Xufox Es ist also schon wieder ein Webkit-Bug? Ich wäre nicht überrascht ... – NoBugs
Nicht so sicher darüber ... Ich habe es nicht auf Firefox für Android oder Firefox OS usw. getestet – Xufox