/ / Touch evento não está funcionando no laptop com tela de toque - jquery

Evento de toque não funciona no laptop com tela de toque - jquery

Eu coloquei um código simples para eventos de toque e funciona bem em dispositivos móveis, mas não funciona no laptop com tela de toque.

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

Respostas:

0 para resposta № 1

Atualização: Confira o projeto Polyfill do jQuery Pointer Events, que permite vincular a eventos de "ponteiro" em vez de escolher entre mouse e toque. https://github.com/jquery/PEP

Vincule a ambos, mas crie um sinalizador para que a função só seja disparada uma vez por 100ms ou mais.

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

return false
});

0 para resposta № 2

Talvez esteja ouvindo eventos do mouse. Você pode adicionar uma variável ao seu evento e verificar se os recursos podem reproduzir eventos de toque ou não. Você pode usar a biblioteca javascript modernizr para obter mais precisão nesta tarefa.

http://modernizr.com/

Deixe-me mostrar-lhe um exemplo:

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