触摸屏笔记本电脑上的触摸事件无法正常工作

4

我已经编写了一个简单的触摸事件代码,并且在移动设备上运行良好,但是在触摸屏笔记本电脑上无法工作。

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

0

可能是监听鼠标事件。您可以为您的事件添加一个变量,并检查它的功能是否能够重现触摸事件。您可以使用modernizr JavaScript库来在此任务中获得更高的准确性。

http://modernizr.com/

让我给你展示一个例子:

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

0
更新:请查看jQuery Pointer Events Polyfill项目,它允许您绑定“指针”事件,而不是在鼠标和触摸之间进行选择。 https://github.com/jquery/PEP 同时绑定两者,但设置一个标志,使函数每100毫秒只触发一次。
var flag = false;
 $thing.bind('touchstart click', function(){
  if (!flag) {
    flag = true;
   setTimeout(function(){ flag = false; }, 100);
// do something
  }

  return false
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接