木子屋 Dnawo's BLOG

jQuery鼠标双击时误触发click事件解决方法

👤 dnawo 📅 2023-07-09 👁 1776 👍 0 💬 0 🔄 来源:本站原创
当页面按钮同时绑定了dblclick和click两个事件时,双击会发现触发了一次dblclick事件和两次click事件:

<input name="btn1" id="btn1" type="button" value="随便点">
<script type="text/javascript">
$(document).ready(function(){
    $("#btn1").on("click", function(){console.log("click")});
    $("#btn1").on("dblclick", function(){console.log("dblclick")});
});
</script>

图片

也就是说,误触发了两次click事件,怎么避免呢?将代码稍做修改:

<input name="btn1" id="btn1" type="button" value="随便点">
<script type="text/javascript">
$(document).ready(function(){
	let timer = null;

	$("#btn1").on("click", function(){
		if(timer){clearTimeout(timer)}
		timer = setTimeout(function(){console.log("click")}, 300);
	});

	$("#btn1").on("dblclick", function(){
		if(timer){clearTimeout(timer)}
		console.log("dblclick");
	});
});
</script>

图片

OK,问题解决!

评论(0)

暂无评论。

验证码
评论需审核通过后显示
← 上一篇 微信小程序取名:提交次数过于频繁,请稍后再试 下一篇 → jQuery调用val方法对input赋值不能触发propert…