/ / Touch-Ereignis funktioniert nicht auf Touchscreen-Laptop - Abfrage

Berührungsereignis, das nicht auf Touch Screen Laptop - jQuery arbeitet

Ich habe einfachen Code für Berührungsereignisse eingegeben, der auf Mobilgeräten einwandfrei funktioniert, auf Touchscreen-Laptops jedoch nicht.

$(document).ready(function(){
$(".navigation a").bind("touchstart",function(e){
alert("Touch start!");
});
});

Antworten:

0 für die Antwort № 1

Update: Schauen Sie sich das jQuery Pointer Events Polyfill-Projekt an, mit dem Sie sich an "Zeiger" -Ereignisse binden können, anstatt zwischen Maus und Touch zu wählen. https://github.com/jquery/PEP

Binden Sie an beide, aber erstellen Sie ein Flag, damit die Funktion nur einmal pro 100 ms oder so ausgelöst wird.

var flag = false;
$thing.bind("touchstart click", function(){
if (!flag) {
flag = true;
setTimeout(function(){ flag = false; }, 100);
// do something
}

return false
});

0 für die Antwort № 2

Vielleicht hört Maus Ereignisse. Sie können eine Variable für Ihr Ereignis hinzufügen und prüfen, ob ihre Funktionen Berührungsereignisse reproduzieren können oder nicht. Sie können die Javascript-Bibliothek modernizr verwenden, um die Genauigkeit bei dieser Aufgabe zu erhöhen.

http://modernizr.com/

Lassen Sie mich ein Beispiel zeigen:

 var clickEvent = undefined;
if (Modernizr.touch) {
clickEvent = "touchstart";
} else {
clickEvent = "click";
}
$(document).ready(function(){
$(".navigation a").bind(clickEvent,function(e){
alert("It works!")
});
});