Javascript 检查单击是否由触摸或单击触发

Javascript 检查单击是否由触摸或单击触发,javascript,jquery,Javascript,Jquery,我有一个功能,点击就可以工作 $('#test').click(function(e){ // some code }); 如何检查测试元素是否被单击或触摸?您可以为两者使用一个事件,然后检测触发的事件类型: $('#test').on('touchend click',function(e){ if(e.type=='click') alert('click triggered'); else alert('touch triggered'); });

我有一个功能,点击就可以工作

$('#test').click(function(e){
  // some code
});

如何检查
测试
元素是否被单击或触摸?

您可以为两者使用一个事件,然后检测触发的事件类型:

$('#test').on('touchend click',function(e){
  if(e.type=='click')
      alert('click triggered');
  else
      alert('touch triggered');
});
希望这有帮助


$(“#测试”)。在('touchend click',函数(e)上{
如果(e.type=='click')
警报(“点击触发”);
其他的
警报(“触摸触发”);
});


测试
因为我需要一个普通的JS解决方案,这是谷歌上出现的第一个结果,我想更多的人会发现我的发现很有用,所以我正在写这个答案

在寻找这个问题的解决方案时,我在a(谁会想到)中发现了这段代码,因此我将其包装在一个函数中,对我来说非常有吸引力:

function isTouchScreen() {
    return window.matchMedia('(hover: none)').matches;
}

您可能希望在站点中实现之前签出,但这对我来说很好。

我不知道为什么,但当使用Chrome设备工具栏上的模拟触摸输入时,我会收到两个警报。大多数人想知道事件是否真的是由触摸或点击触发的,有些设备可能同时支持这两个警报(Surface,iPad Pro)。所以这在大多数情况下都不起作用。