3
我想在jQuery中編寫我的第一個插件,並且我對回調有點困惑。插件中的回調函數
對我來說,似乎一切都很好,但它似乎不是。
邏輯是(我認爲)是創建一個全球settings
對象。當實例化tokenizer
設置將/改寫給定的設置/選項進行擴展,所以它應該是覆蓋onAdd
這裏$('#xxx').tokenizer(...
之後,我只是add
的項目,但在控制檯它傷心:
The item in onAdd
undefined
這裏是一個jsFiddle
var settings = {
onAdd: function() {},
onRemove: function() {},
sourceSelecter: null,
targetSelector: null
};
$.fn.tokenizer = function (options) {
this.settings = $.extend({
targetSelector: this,
idName: 'id'
}, settings, options);
this.add = function (item) {
console.log('The item in function add: ' + item);
this.settings.onAdd.call(item);
};
this.remove = function (item) {
this.settings.onRemove.call(item);
};
return this;
};
var $tokenizer = $('#xxx').tokenizer({
sourceSelector: 'group',
onAdd: function (item) {
console.log('The item in onAdd');
console.log(item);
}
});
$tokenizer.idName = 'groupId';
$tokenizer.add('abcdefg');
酷,它的工作原理,謝謝。我沒有充分理解這些論點。當SO計時器允許我接受答案時,我會的。 – vaso123
很高興我能幫上忙。 – BenG