Javascript 触摸设备中的触摸是否通过所有设备中的点击事件检测到?

Javascript 触摸设备中的触摸是否通过所有设备中的点击事件检测到?,javascript,jquery,click,touch,Javascript,Jquery,Click,Touch,我有一些jquery代码是这样的 $(this).click(function() { //code }); 我想知道它是否也适用于触摸设备(像在笔记本电脑中单击事件那样响应触摸事件),所以我在Firefox开发者工具中使用触摸模拟对它进行了测试 我认为这可能是因为所有触摸设备都认为触摸事件是点击事件,所以我搜索了这个结果,结果证明我的假设是错误的,因为触摸是JavaScript中的一个单独事件。有,但在某些浏览器中不支持。虽然我还是找到了这样的代码 $(this).on("click

我有一些jquery代码是这样的

$(this).click(function() {
    //code
});
我想知道它是否也适用于触摸设备(像在笔记本电脑中单击事件那样响应触摸事件),所以我在Firefox开发者工具中使用触摸模拟对它进行了测试

我认为这可能是因为所有触摸设备都认为触摸事件是点击事件,所以我搜索了这个结果,结果证明我的假设是错误的,因为触摸是JavaScript中的一个单独事件。有,但在某些浏览器中不支持。虽然我还是找到了这样的代码

$(this).on("click touchstart",function() {
    //code
});

那么,为什么它与触摸模拟一起工作呢?它是否仅在某些触摸设备中以这种方式工作?我的最终解决方案是什么,以使我的代码在所有设备中都能同时使用单击和触摸,无论浏览器是哪个?

使用此功能,您可以分别检测
单击
触摸启动
事件

var clickEvent = (function() {
  if ('ontouchstart' in document.documentElement === true)
    return 'touchstart';
  else
    return 'click';
})();

$(this).on(clickEvent,function() {
    //code
});

您可以使用此功能分别检测
单击
触摸启动
事件

var clickEvent = (function() {
  if ('ontouchstart' in document.documentElement === true)
    return 'touchstart';
  else
    return 'click';
})();

$(this).on(clickEvent,function() {
    //code
});

是和否。触摸是一个单独的事件,但仅在某些情况下(如刷卡)。一般来说,当您仅用手指“单击”时,它将作为单击事件处理。尽管如此,可能会有异国情调的浏览器以不同的方式工作,但这意味着在这样的浏览器中几乎没有遗留网页可用。所以你的建议是只使用我的原始代码?是的。绝对地触摸事件只是触摸设备的一个额外功能,请像以前一样单击事件工作。是和否。触摸是一个单独的事件,但仅在某些情况下(如刷卡)。一般来说,当您仅用手指“单击”时,它将作为单击事件处理。尽管如此,可能会有异国情调的浏览器以不同的方式工作,但这意味着在这样的浏览器中几乎没有遗留网页可用。所以你的建议是只使用我的原始代码?是的。绝对地触摸事件只是触摸设备的一个额外功能,请像以前一样单击事件工作。