Check if click was triggered by touch or click

时间:2016-04-04 17:19:52

标签: javascript jquery

I have function that works on click

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

How can I check if the test element clicked or touched?

2 个答案:

答案 0 :(得分:7)

You could use one event for the both then detect type of the event triggered :

$('#test').on('touchend click',function(e){
  if(e.type=='click')
      alert('click triggered');
  else
      alert('touch triggered');
});

Hope this helps.


$('#test').on('touchend click',function(e){
  if(e.type=='click')
    alert('click triggered');
  else
    alert('touch triggered');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="test">TEST</button>

答案 1 :(得分:0)

由于我需要一个普通的JS解决方案,而这是在Google中弹出的第一个结果,所以我认为更多的人会发现我的发现有用,所以我正在写这个答案。

在寻找这个问题的解决方案时,我已经在Medium comment中找到了这段代码(他们会想到的),所以我包装了一个函数,对我来说就像一个魅力:

A

您可能希望先在网站上实施browser compatibility,然后对我进行检查。