1

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

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

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

        function(hex, hsv, rgb) {

        });
});

这工作正常,但每次我点击.wrap,它都会重复(请查看演示以查看问题)。有没有办法修复它?

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

(点击框内查看问题)

谢谢。

4

2 回答 2

2

而不是on()每次点击元素时触发这个事件,只需使用jQuery的one()方法只触发一次:

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

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

JSFiddle 演示

于 2013-10-29T11:03:18.127 回答
2

您可以改用一个

$(document).one('click', '.wrap', function(){
    //...
});
于 2013-10-29T11:03:51.147 回答