Jquery 控制台记录器一次鼠标向下调用两次

Jquery 控制台记录器一次鼠标向下调用两次,jquery,plugins,onmousedown,Jquery,Plugins,Onmousedown,我在jQuery的onmousedown中遇到了一个奇怪的问题。我有一个插件,您可以为其分配按钮并添加一些选项,如: $.lollipopbutton(".buttons button", { bubble_color: "rgba(0,0,0,1)" }); 这个插件中发生的一件事是,当你点击按钮时,会触发一个动画。但是,我只想允许一次触发x次此动画。因此,我添加了选项maxClicks(出于测试目的,默认值为10)。此外,每个按钮都会获得一个jQuery数据元素来跟踪计数器: co

我在jQuery的onmousedown中遇到了一个奇怪的问题。我有一个插件,您可以为其分配按钮并添加一些选项,如:

$.lollipopbutton(".buttons button", {
    bubble_color: "rgba(0,0,0,1)"
});
这个插件中发生的一件事是,当你点击按钮时,会触发一个动画。但是,我只想允许一次触发x次此动画。因此,我添加了选项
maxClicks
(出于测试目的,默认值为10)。此外,每个按钮都会获得一个jQuery数据元素来跟踪计数器:

counter = $this.data("counter") || 0;
然后,我们可以将计数器与maxClicks选项进行比较:

if (counter <= args.maxClicks) {}

if(counter它被调用了两次,因为在
lollipopbutton
函数中附加了
mousedown
处理程序。您调用
lollipopbutton
如下

$.lollipopbutton(".buttons button", {
    bubble_color: "rgba(0,0,0,1)"
});

$.lollipopbutton(".buttons button.white", {
    text_overlay: false
});

这将附加
mousedown
处理程序两次

我以为我已经测试过了,显然我没有…谢谢。知道如何绕过这个问题吗?@BramVanroy,为什么不在棒棒糖按钮外初始化on mousedown处理程序?
$.lollipopbutton(".buttons button", {
    bubble_color: "rgba(0,0,0,1)"
});

$.lollipopbutton(".buttons button.white", {
    text_overlay: false
});