Abbrechen touchend wenn touchmove feuert
Ich bin etwas zu bauen, die hauptsächlich für den Einsatz auf tablets, wo kann der Benutzer Tippen Sie auf ein Element auf dem Bildschirm und eine Klasse angewendet. Dies ist, was ich habe, so weit:
Probleme:
- Möchte ich den Einsatz von touch-events zu löschen, die Klasse, und fügen Sie die Klasse auf touch-end (um es schneller zu machen).
- Ich will es nicht, etwas zu tun, wenn der Benutzer Eingaben (touchmoves).
Ich habe versucht eine Reihe von Dingen, von denen keines gearbeitet haben. Die einfachste habe ich (erfolglos) versuchte, ist dieses:
var dragging = false;
$(".items").on("touchmove", function(){
dragging = true;
});
$('.items').on("click touchend", function(event){
if (dragging = true){
}
else{
$('.items').removeClass('selected');
$(this).addClass('selected');
}
});
if (dragging = true)
sollte nurif (dragging)
oder besser nochif (!dragging)
dann bewegen Sie alles, was in der else-Anweisung in der if-Anweisung (daher, Sie haben keine andere).- Sobald Sie
touchmove
einmal, Sie setzendragging = true
dies wird nicht zulassen, dass andere Klicks pro code. Sie muss zurücksetzendragging = false
nach der Veranstaltung beendet.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde behaupten, das ist ein sicherer Weg, es zu tun
Einstellung variable auf false
Einstellung var auf true ontouchmove (ermöglicht die Wiederverwendung dieser code überall in Ihrem app)
Schaltfläche
Variable zurücksetzen (wichtig)
Sie möchten, verwenden Sie eines der folgenden:
Oder einfach:
Sollten Sie nur mit einem einzigen
=
Zeichen, wenn Sie Einstellung einen Wert, in der Erwägung, dass zwei==
Zeichen sollte verwendet werden, wenn überprüfung einen Wert. Daher sollte Ihr code so Aussehen:Bemerken, wie Sie nicht brauchen, um zu überprüfen, ob
dragging == true
weil Sie nicht mit jedem code in diesem Fall. Stattdessen können Sie einfach überprüfen, wenndragging == false
oder!dragging
wo Sie haben, ziehen überprüfen setzen
wird es zurückgesetzt auf die Version
auch watch out für die Doppel-Anrufe auf Ereignisse, wie Sie manchmal auslösen zweimal auf einigen Plattformen am besten zu überprüfen-Plattform mit der ersten folgenden wird mit Hilfe prüft
oder