jquery插件样板元素

时间:2012-07-10 03:49:55

标签: jquery boilerplate

我正在尝试使用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()返回空对象({})

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

TIA。

1 个答案:

答案 0 :(得分:2)

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

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