双击复选框时会触发上层@dblclick方法?

bug:双击复选框时,会触发上层的dblclick。

经测试@click.stop无法解决

题主没理解他们意思,让你加@dbclick.stop是让你给复选框checkbox新增一个@dbclick.stop事件,不是让你去改父级的@dbclick

 复选框设置@dblclick.stop

很简单的解决办法:@dbclick.stop.native 

双击dblclick事件,同时会执行click事件中的语句,当需要为一个元素同时添加这两个事件时,显然这不是我们想要的结果,举个实例,在最近做的canvas开发中使用鼠标画区域,鼠标单击一下开始画,鼠标双击时结束,并保存当前所画的区域,这时候就碰到了这个问题。解决的方法,,可以参考下面的代码,用延时的方法实现。

<!DOCTYPE html>
<html>
<head>
  <title></title>
</head>
<body>
  <button type="button" id="button">点击我</button>
  <script type="text/javascript">
    function $(id){
      return document.getElementById(id);
    }
    var timer=null;
    $('button').addEventListener('click',function(e){
      clearTimeout(timer);
      timer=setTimeout(function(){//初始化一个延时
        console.log("1");
        // console.log(e);
      },250)
    },false);
    $('button').addEventListener('dblclick',function(){//双击事件会先触发两次单击事件,然后再执行双击事件,使用清除定时器来达到双击只执行双击事件的目的
      clearTimeout(timer);
      console.log("2");
    },false);
  </script>
</body>
</html>

@dbclick.stop呀

 

就是再套一层div,把checkbox的事件,绑定到新增的div上然后@click.stop

var time;
$("#btn").on("click",function(){
	clearTimeout(time);
	time = setTimeout(function(){
	//执行代码
},300)
});
$("#btn").dbclick(function(){
	clearTimeout(time);
	//执行代码
})

<div id="btn">按钮</div>

这样是可以区分单击事件和双击事件的,因为单击和双击之间,就是时间的差别。

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632