在創建插件時,我對每個插件的使用都有些困惑。我創建了一個簡單的插件與回調作爲測試。爲什麼在創建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'))' 當把這個集合作爲一個整體對待時,這是行不通的,你必須檢查每一個如果它具有該類,則該集合中的項目。 –