我已经用jQuery编写了大约2年的编码,但我从来没有在插件中完成它。我想改变这个。我发现了一些网站,解释了如何创建插件,我理解了基础知识。
我不理解的部分是使用this
关键字。这是一个简单的插件示例:
(function($){
$.fn.myPlugin = function(options)
{
// Do whatever
return this.each(function(){
element = $(this);
});
}
$.fn.myPlugin.init = function()
{
// Initiate plugin
}
})(jQuery);
在我的代码的第5行,我有this.each
。在这种情况下,this
关键字引用选择器中的所有元素。以下行使用$(this)
当前元素,就像我在.click(function(){$(this).hide();})
中执行此操作一样。
现在,在OO逻辑中,通常我们有一个this
关键字来引用内部函数或属性。如果在$.fn.myPlugin
我想要致电$.fn.myPlugin.init()
,我希望可以使用this.init()
这样的内容,但它似乎无效。
此外,我希望能够以类似的方式定义类属性,例如this.myVariable = "my value"
。
因此,如果有人能够解释我所缺少的任何东西来理解jQuery的插件概念,或者通过相关链接指向正确的方向,我会感激帮助!如果我的解释不够清楚,请告诉我,我会尽力让它变得更好,但现在我的脑海里有点模糊。 ;)
答案 0 :(得分:2)
在进入.each()
之前,this
实际上是包含匹配DOM元素集的jQuery对象。
如果您想以这种方式调用该函数,则需要在添加它的范围内调用它。 $.fn.myPlugin
。
this.myPlugin.init();
或者每个人都喜欢这样:
$(this).myPlugin.init();
或直接这样:
$.fn.myPlugin.init();