jquery访问插件作为变量

时间:2011-01-19 11:58:12

标签: jquery variables jquery-plugins

这对你来说应该很简单。我不久前制作了一个插件,忘记了如何将插件设置为变量然后使用它。我想我的代码可以帮助你理解我在说什么。

var $bgcolourpicker1 = $('div.bgcolour1').bpcolourpicker(
    {
        returncolour: bgcolour1,
        cssposition: 'relative'
    });

所以控制已经建立,但在任何时候我都可能想要重新设置这样的属性。

$('div.bgcolour2').bpcolourpicker({ returncolour: bgcolour1 });

这有效,但我确定可以通过使用变量$ bgcolourpicker1来完成。例如。

$bgcolourpicker1.bpcolourpicker({ returncolour: bgcolour1 });

有人知道是否可以这样做吗?我相信我以前见过它。

由于

1 个答案:

答案 0 :(得分:0)

我认为这种情况的常见设计有点像这样:

var $bgcolourpicker1 = $('div.bgcolour1').bpcolourpicker({
    returncolour: bgcolour1,
    cssposition: 'relative'
});

$bgcolourpicker1.bpcolourpicker('updateSettings', { returncolour: bgcolour2 });

然后你可能会使用data和jQuery对象保存插件实例(在这种情况下是$('div.bgcolour1'),如果第一个参数传递给函数是一个String而不是一个对象你可以使用现有的实例来执行它。

在您的情况下,您甚至可以跳过该方法,只检查是否已在此对象上调用该插件:

$.fn.bpcolourpicker = function(settings) {
    return $(this).each(function(i, e) {
        if ($(e).data('bpcolourpicker'))
            // … use the one you have already
        else
            // … regular plugin execution
    }
};