在创建插件时,我对每个插件的使用都有些困惑。我创建了一个简单的插件与回调作为测试。为什么在创建jquery插件时使用每个插件
<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
我认为使用每个会遍历找到的div,但为什么不使用每个代码提供相同的结果。我明显在这里错过了一些东西。有任何想法吗?
感谢。你能举出一些不能自动应用于所有元素的例子吗? –
jQuery的操作与将它们应用于整个元素集相当一致。但想象一下,你会想要做一些基于如下条件的东西:'if(this.hasClass('test'))' 当把这个集合作为一个整体对待时,这是行不通的,你必须检查每一个如果它具有该类,则该集合中的项目。 –