使用jquery.data的jquery插件模式

时间:2012-12-06 17:01:48

标签: jquery

我在jquery插件模式中看到了这段代码,并且注释部分提到我们可以使用jQuery.data函数将插件附加到DOM元素。我不明白的是如何使用这段代码。有人可以提供如何使用此功能并解释其重要性的示例吗?

 $.fn[pluginName] = function (options) {
        return $Extend(this).each(function () {
            if (!$.data(this, 'plugin_' + pluginName)) {
                $.data(this, 'plugin_' + pluginName,
                new Plugin( this, options ));
            }
        });
    };

1 个答案:

答案 0 :(得分:1)

我认为您提供的代码的重点不允许重新初始化插件。

它正在做的是,当您第一次在元素上调用插件时,它会检查其data以查看是否已设置属性'plugin_' + pluginName。如果是的话,它什么也没做。如果尚未设置,则会调用new Plugin()方法并将其存储在data中。这样,它可以通过插件方法轻松检索。所有方法都必须使用$(this).data('plugin_' + pluginName)来检索有关插件的任何内容,特别是对于该元素。

因此,如果您想进行2次插件调用,例如:

$(".class").specialPlugin({
    key1: "value1"
});

$(".class2").specialPlugin({
    key23: "value23"
});

然后,每个元素的数据将只具有特定于其原始设置的信息。

data中实际存储的内容是new Plugin返回的内容,并且可以包含许多内容的完整对象或原始options对象的任何位置,以便于参考。