公开附加到页面上多个元素的jQuery插件的属性

exposing properties from a jQuery plugin attached to multiple elements on a page

本文关键字:元素 jQuery 属性 插件      更新时间:2023-09-26

有人建议我使用以下结构来公开jQuery插件的公共属性。

(function($) {
   $.myPlugin = {
       data: {}
   };
    $.fn.myPlugin = function() {
        return this;
    };
})(jQuery);

上面的示例通过语法$.myPlugin.data. 公开"数据"

如果插件附加到一个页面上的多个HTML元素,那么我认为$.myPlugin.data将无效,因为它相当于一个静态变量。

  1. 如果数据与特定插件的实例相关,那么编写插件的另一种方法是什么
  2. 如何通过插件外部的代码引用此属性?你是如何解读这处房产的

这将把数据附加到插件操作的每个元素上。

(function($) {
    $.fn.extend({
        myPlugin: function (options) {
            var defaultConfig = {data: {}};
            return this.each(function () {
                $(this).data(
                   "myPlugin", $.extend(defaultConfig, options)
                );
            });
        }
    });
})(jQuery);

例如,当这样调用时:

$("div.foo").myPlugin({option: "value"});

每个<div class="foo">都有自己的副本

{
   data: {},
   option: "value"
}

可在CCD_ 3上获得。

使用回调函数怎么样?

// external code
$('.something').myPlugin({
    onLoad : function(object, data) {
        // use data here
    }
});