我的JSFiddle带有可调整大小的框。双击文档上的任何位置时,框的颜色将在米色和红色之间切换。
问题在于,有时在调整框大小后释放鼠标左键时,会生成dblclick
事件,并且框会变成红色。有时您可以释放鼠标按钮而无需更改框的颜色,但是如果您仅在框中单击一次,它将生成dblclick
并更改框的颜色。
通常,一切正常:我调整大小,没有dblclick
条目。我必须尝试20次才能得到错误的dblclick
事件。
我正在使用Chrome。
如果正在调整大小,我可以通过向dblclick
处理程序中添加代码来忽略该条目来部分解决此特定问题。但是,这仍然不能解决dblclick
条目,这种情况(很少)在我调整大小时发生,没有得到dblclick
,但是当我在框中单击一次时得到了dblclik
。
但是我在这里寻找的不仅仅是生成JSFiddle的原因,而是生成dblclick
的原因。我是否使用dblclick
事件不正确?此事件是否存在已知的错误,也许是更好的解决方案?使用鼠标按钮是否会进行某种类型的开关弹跳?
$(function() {
$("#box").resizable();
$(document).dblclick(function(e){
console.log("double-clicked on ", e.target);
$("#box").toggleClass("red");
});
});
最佳答案
它可能与您的硬件有关,我想它也受到系统的“双击延迟”设置的影响。
使用Firefox,如果我反复以微小的闭合 Action 单击并拖动,则会触发dblclick事件,这将是正常现象。但是,我看不到dblclicks在5秒间隔的点击中突然冒出来。
为了帮助您跟踪可能的错误原因,请尝试同时记录mousedown
和mouseup
事件:
$(document).mousedown(function(e){
console.log(" mousedown on ", e.target);
});
$(document).mouseup(function(e){
console.log(" mouseup on ", e.target);
});
fiddle