我正在阅读这个jQuery插件模式:https://github.com/jquery-boilerplate/jquery-patterns/blob/master/patterns/jquery.extend-skeleton.js我不明白在return语句中调用this
上的每个函数的目的是什么?那取代了:
;(function($){
$.fn.extend({
pluginName: function( options ) {
this.defaultOptions = {};
var settings = $.extend({}, this.defaultOptions, options);
return this.each(function() {
var $this = $(this);
});
}
});
})(jQuery);
如果我只是将this
作为:
;(function($){
$.fn.extend({
pluginName: function( options ) {
this.defaultOptions = {};
var settings = $.extend({}, this.defaultOptions, options);
return this;
}
});
})(jQuery);
两者都一样。据我所知this
充当插件中的选定元素。例如,如果我有三个带有test
类的div,我会这样做:
$(".test").pluginName(); // returns an array of three div elements in both plugin styles
据我所知$(".test")
给出了一个包含三个dom元素的数组,pluginName被调用三次$(".test").pluginName();
,并且三个返回的值被推送到最后返回的数组中。
请求解释为什么他们在return语句中使用this.each()
而不是this
?
答案 0 :(得分:0)
据我所知$(" .test")给出了一个包含三个dom元素的数组,pluginName被调用三次$(" .test")。pluginName() ;并且三个返回的值被推入一个最后返回的数组中。
这不正确。调用pluginName()
一次,将此设置为与三个DOM元素对应的jQuery对象。因此使用this.each()
以便循环遍历jQuery对象并为每个对象执行任何操作。