1

我正在尝试使用 jquery-boilerplate-v3.1 开发插件,并且在“this”和“$(this)”之间感到困惑

    in the plugin 
    ...
    $.fn[pluginName] = function ( options ) {
    //alert($(this).toSource());
    return this.each(function () {
        if (!$.data(this, 'plugin_' + pluginName)) {
            $.data(this, 'plugin_' + pluginName, new Plugin( this, options ));
        }
    });
};

似乎new Plugin(this, options)没有返回 Plugin.prototype 上下文中的元素。

相反,我已将其修改为Plugin($(this), options).

eg.
   $(function(){
     $('#container').myPlugin();
   });

如果不使用 $(this) 作为参数,我无法访问插件中的 this.element , .toSource() return empty object ({})

我是否通过修改为 $(this) 或如何使用this参数访问#container 来做正确的方法。

TIA。

4

1 回答 1

2

在插件中,this指的是您应用插件的 jQuery 对象,但在回调中this.each()this指的是 jQuery 对象中的每个单个 DOM 元素。

所以,是的,您需要$(this)在循环中获取一个包含该元素的 jQuery 对象。

于 2012-07-10T03:59:21.487 回答