在jQuery中,我得到了一个单击执行的函数,但双击时另一个函数,问题是当我双击它时它点击2次然后双击所以3次执行......
这是我的代码:
$('.listCat li').on({
click: function() {
$(this).toggleClass("on");
refresh();
},
dblclick: function() {
$('.listCat li.on').removeClass('on');
$(this).addClass("on");
refresh();
}
});
我在点击时考虑做一个小延迟并检测是否有双击,否则启动刷新()。
你认为有一个很好的干净方法吗?
谢谢。
答案 0 :(得分:1)
The docs for jQuery .dblclick
建议你不要一起使用它们:
不建议将处理程序绑定到同一元素的click和dblclick事件。触发的事件序列因浏览器而异,有些事件在dblclick之前接收到两个点击事件,而其他事件只接收一个事件。双击灵敏度(双击检测到的点击之间的最长时间)可能因操作系统和浏览器而异,并且通常可由用户配置。
如果你必须这样做,there is a workaround on this question(正如你在问题评论中提到的那样)。不过,我不会完全信任它。正如jQuery文档所说,双击的长度通常是用户可配置的。
另请参阅此问题:jQuery: Suppress `click` when `dblclick` is imminent?