0

我在 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 ));
            }
        });
    };
4

1 回答 1

1

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

它所做的是,当您第一次在元素上调用插件时,它会检查它data以查看是否'plugin_' + pluginName已经设置了属性 。如果是这样,它不会做任何进一步的事情。如果尚未设置,则调用该new Plugin()方法并将其存储在其data. 这样,它很容易通过插件方法检索。所有方法要做的就是$(this).data('plugin_' + pluginName)检索关于插件的任何东西,特别是针对那个元素。

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

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

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

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

实际存储在 中的datanew Plugin返回的内容,并且范围可以从许多事物的完整对象或只是原始options对象的任何地方,以便于参考。

于 2012-12-06T17:12:05.930 回答