在创建插件时,我对使用 each 有点困惑。我创建了一个带有回调的简单插件作为测试。
<div>Click me 1</div>
<div>Click me 2</div>
没有每个:-
(function($){
$.fn.TestCallBack = function(options){
var defaults = {
onClicked :function(){}
}
var settings = $.extend({}, defaults, options);
function DoSomething(){
settings.onClicked.call(this);
}
$(this).bind("click", DoSomething);
return this;
}
})(jQuery);
$("div").TestCallBack({onClicked:function(){
console.log($(this).html());
}});
这会产生结果
Click me 1
Click me 2
每个: -
(function ($) {
$.fn.TestCallBack = function (options) {
var defaults = {
onClicked: function () {}
}
var settings = $.extend({}, defaults, options);
function DoSomething() {
settings.onClicked.call(this);
}
this.each(function(){
$(this).bind("click", DoSomething);
});
return this;
}
})(jQuery);
$("div").TestCallBack({
onClicked: function () {
console.log($(this).html());
}
});
这会产生结果
Click me 1
Click me 2
我认为使用 each 会遍历找到的 div,但为什么不使用 each 的代码会提供相同的结果。我显然在这里遗漏了一些东西。有任何想法吗?