使用时间器区别网页上的单击和双击

在网页上,单击事件包含一次 onmousedown,onmouseup,onclick的过程。同理,双击事件包含了onmousedown,onmouseup,onclick,onmousedown,onmouseup,onclick,ondblclick的过程。所以在网页上进行ondblclick触发时同时也会触发onclick,因此、当我们在同一个element同时注册了这2个事件时,我们需要将他们区别开来。以下使用延时处理来进行区别。

<script type="text/javascript">

  //当我们单击时,希望只执行clickAlert

  //当我们双击时,希望只执行dblclickAlert

  var timer;
  $(".test").on("click",function(){

    if(timer){

      clearTimeout(timer);

    }
    timer = setTimeout("clickAlert()",300); //单击的处理会延迟0.3秒触发
  }).on("dblclick",function(){

    if(timer){

      clearTimeout(timer);

    }
    dblclickAlert();
  });

  //单击要做的事情
  function clickAlert(){
    alert("此时为单击");
  }

  //双击要做的事情
  function dblclickAlert(){
    alert("此时为双击");
  }
</script>

posted @ 2018-08-30 14:44  scd  阅读(137)  评论(0编辑  收藏  举报