点击停止双击

时间:2011-12-16 05:50:28

标签: jquery

在jQuery中,我得到了一个单击执行的函数,但双击时另一个函数,问题是当我双击它时它点击2次然后双击所以3次执行......

这是我的代码:

$('.listCat li').on({
    click: function() {
        $(this).toggleClass("on");
        refresh();
    },
    dblclick: function() {
        $('.listCat li.on').removeClass('on');
        $(this).addClass("on");
        refresh();
    }
});

我在点击时考虑做一个小延迟并检测是否有双击,否则启动刷新()。

你认为有一个很好的干净方法吗?

谢谢。

1 个答案:

答案 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?