正在删除本地化代码中的JQuery依赖项
Removing JQuery dependency in localization code
我正在使用此javascript本地化我的Cordova/Phonegap应用程序。它依赖于JQuery,我不想使用它。这里的最后一位特别不起作用
_results.push($(".l10n-" + key).html(value));
如何更改代码以删除该依赖项?谢谢
var Localization;
Localization = (function() {
function Localization() {}
Localization.initialize = function(dictionnary, fallback_language) {
Localization.dictionnary = dictionnary;
Localization.fallback_language = fallback_language;
return navigator.globalization.getPreferredLanguage(Localization.get_preferred_language_callback, Localization.get_preferred_language_error_callback);
};
Localization.get_preferred_language_callback = function(language) {
Localization.language = language.value;
alert("Phone language is " + Localization.language);
if (Localization.language in Localization.dictionnary) {
alert("It is supported.");
} else {
Localization.language = Localization.fallback_language;
alert("It is unsupported, so we chose " + Localization.language + " instead.");
}
return Localization.apply_to_current_html();
};
Localization.get_preferred_language_error_callback = function() {
Localization.language = Localization.fallback_language;
alert("There was a error determining the language, so we chose " + Localization.language + ".");
return Localization.apply_to_current_html();
};
Localization.apply_to_current_html = function() {
var key, value, _ref, _results;
alert("Localizing HTML file.");
_ref = Localization.dictionnary[Localization.language];
_results = [];
for (key in _ref) {
value = _ref[key];
alert(value);
_results.push($(".l10n-" + key).html(value));
alert("result is " + _results);
}
return _results;
};
Localization["for"] = function(key) {
return Localization.dictionnary[Localization.language][key];
};
return Localization;
})();
您可以使用原生JS方法来更改这些元素的HTML:
Localization.apply_to_current_html = function() {
var key, value, _ref, _results;
_ref = Localization.dictionnary[Localization.language];
_results = [];
for (key in _ref) {
value = _ref[key];
var elements = document.querySelectorAll(".l10n-" + key);
for (var i = 0; i < elements.length; i++) {
elements[i].innerHTML = value;
_results.push(elements[i]);
}
}
return _results;
};
请注意,功能将是相同的,但是apply_to_current_html()
函数现在将返回DOMElement
对象的数组,而不是像以前那样返回jQuery对象的数组。
你还没有说明如何使用这个返回值的例子,所以我不能告诉你这可能会产生什么连锁反应。
相关文章:
- jquery中的复选框依赖项
- AngularJS或jquery中的依赖级联下拉框列表
- 如何隐藏&使用jQuery禁用依赖于另一个字段值的字段
- Ajax xml源解析依赖于jQuery的点击操作
- 在 webpack 中管理 jQuery 插件依赖关系
- Jquery使用依赖项进行验证,而未填充检查
- 试图使一个事件依赖于另一个事件,并使用jquery自定义事件传递数据
- 使用jquery如何自动删除下拉列表中的第一个空白选项(如果它依赖于另一个选项)
- SignalR为什么依赖jQuery
- JQuery对话框,其内容依赖于javascript
- 表中的 Jquery 依赖下拉列表
- Jquery 依赖下拉列表以加载到文档就绪
- 将jQuery依赖项传递给angular js控制器
- 当小部件实例化自己的jQuery依赖时避免jQuery冲突
- 在jQuery之前加载具有jQuery依赖项的外部JavaScript
- 如何使用我的项目bower.json在Bootstrap中限制jQuery依赖关系
- 使用requireJS优化器为highcharts保留jQuery依赖
- 在angularJs中添加jQuery依赖
- 删除jQuery依赖项
- 正在删除本地化代码中的JQuery依赖项