/ / Zdarzenie dotykowe nie działa na laptopie z ekranem dotykowym - jquery

Zdarzenie dotykowe nie działa na laptopie z ekranem dotykowym - jquery

Umieściłem prosty kod zdarzenia dotykowego i działa dobrze na urządzeniach mobilnych, ale nie działa na laptopie z ekranem dotykowym.

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

Odpowiedzi:

0 dla odpowiedzi № 1

Aktualizacja: Sprawdź projekt jQuery Pointer Events Polyfill, który umożliwia powiązanie ze zdarzeniami „wskaźnikowymi” zamiast wybierania między myszą a dotykiem. https://github.com/jquery/PEP

Powiązaj oba, ale stwórz flagę, aby funkcja uruchamiała się tylko raz na około 100 ms.

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

return false
});

0 dla odpowiedzi nr 2

Może nasłuchuje zdarzeń myszy. Możesz dodać zmienną dla swojego wydarzenia i sprawdzić, czy jego możliwości mogą odtwarzać zdarzenia dotykowe, czy nie. Możesz użyć biblioteki javascript Moderr, aby uzyskać większą dokładność w tym zadaniu.

http://modernizr.com/

Pokażę ci przykład:

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