jQuery:如何检测和处理点击,双击并按住&按住相同的元素?

时间:2016-06-11 22:31:55

标签: jquery touch

我有一个名为" clicker"我想为这个元素处理3个事件:点击,双击并按下&按住或长按。我已经能够在这里和那里聚集一些有用的代码,这些代码在触摸设备上几乎可以正常工作,但似乎单击并按下&保持事件一个接一个地被触发,因为当我按下DIV然后按住我得到的结果首先保留为单击然后被触发按下事件&保持。我在jQuery 1.12.2旁边添加了jQuery.mobile,以便工作但不如我预期的那样好。

<style>
#clicker {
width: 150px;
height: 150px;
margin: 10px;
background: green;
color: #fff;
font-weight:bolder;
font-size: 21px;
}
</styles>

jQ代码在这里:

$(document).ready(function($){
function single_tap(){
    $("#clicker").html("single tap")
}
//
function double_tap(){
    $("#clicker").html("double tap")
}
//
tapped=false
$("#clicker").on("touchstart",function(e){
    if(!tapped){
      tapped=setTimeout(function(){
          single_tap()
          tapped=null
      },300); //wait 300ms
    }
    else {
      clearTimeout(tapped);
      tapped=null
      double_tap()
    }
    e.preventDefault()
    });
}); 
//----
//process press and hold down on #clicker:
$(document).ready(function($){
  $("#clicker").on("taphold",function(){
        clearTimeout(tapped);
        tapped=null
        $("#clicker").html("pressed and hold me");
  });    
   e.preventDefault()
});

我尝试了一些组合,但没有任何帮助。有什么建议吗?谢谢。

0 个答案:

没有答案