jQuery阻止函数在点击时复制

时间:2013-10-29 11:01:01

标签: javascript jquery

我想只在点击其父元素时启动插件(因为该元素附加了jQuery,因此在页面加载时它不存在),所以我正在尝试以下代码:

$(document).on('click', '.wrap', function(){
    ColorPicker(

        document.getElementById('slider'),
        document.getElementById('picker'),

        function(hex, hsv, rgb) {

        });
});

这很好用,但每次点击.wrap时,都会重复(请查看演示以查看问题)。无论如何要解决它?

演示: http://jsfiddle.net/rhzzG/

(在框中单击以查看问题)

感谢。

2 个答案:

答案 0 :(得分:2)

不是每次点击元素时都使用on()来触发此事件,只需使用jQuery's one() method只触发一次:

$(document).one('click', '.wrap', function(){ ... });

然后,ColorPicker将从那里接管处理自己的事件。

JSFiddle demo

答案 1 :(得分:2)

您可以使用one代替

$(document).one('click', '.wrap', function(){
    //...
});