0
我有一個插件來翻譯DOM節點。這一點,它做什麼:jQuery插件返回undefined
$.fn.jqTranslate = function (pkg, options) {
var self = this;
Translate.initialize(pkg, options).done(function() {
return self.each(Translate.translate);
});
};
translate: function() {
var elem = $(this),
key = elem.data('translate');
if (Translate.translatable) {
if (Translate.translatedStrings[key]) {
if (Translate.translatedStrings[key].length === undefined) {
// The key have nested keys
Translate.translateElement(elem, Translate.translatedStrings[key].text);
delete Translate.translatedStrings[key].text;
elem.attr(Translate.translatedStrings[key]);
}
else Translate.translateElement(elem, Translate.translatedStrings[key]);
}
}
if (typeof Translate.options.onComplete === 'function') Translate.options.onComplete.apply(this, arguments);
return elem;
}
如果你看,它的返回自己這樣插件可以在理論上鍊是這樣的:
$('p').jqTranslate('global').addClass('translated')
應該工作,但它說:
Uncaught TypeError: Cannot call method 'addClass' of undefined
我究竟做錯了什麼?
您可以檢查GitHub的完整代碼。
謝謝@Esailija所以,在完成回調權限內沒有任何意義? –
@AntonioLaguna,這取決於回調調用者如何處理返回的值。它雖然對外部功能沒有影響。 – Esailija