dom ノードを変換するプラグインがあります。これはそれが何をするかです:
$.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;
}
ご覧のとおり、それは self を返しているため、プラグインは理論的には次のように連鎖できます。
$('p').jqTranslate('global').addClass('translated')
動作するはずですが、次のように書かれています:
キャッチされていない TypeError: 未定義のメソッド 'addClass' を呼び出せません
私は何を間違っていますか?
完全なコードはGitHubで確認できます。