【问题标题】:Can not read property of undefined i18n无法读取未定义 i18n 的属性
【发布时间】:2017-07-12 10:51:02
【问题描述】:

当我尝试从选择下拉列表中动态传递语言时,它显示以下错误 未捕获的类型错误:无法在 changeLanguage 处读取未定义的属性“属性”

其中changeLanguage是我的函数如下:

function changeLanguage(lang) 
{ 
 lang = lang || "en_EN"; // if no language is set, use browser default 
 jQuery.i18n.properties({ 
 path : 'language', 
 mode : 'both', language: lang,
 name: 'Messages', 
 callback: refresh_i18n }); 
}

以下是它的图片:

Dropdown image

Console error

代码有什么问题? 请做建议! 谢谢

更新: 更多解释: 这是我的索引文件,最初我用 onload 调用它,它工作正常。

<script> 
function refresh_i18n() { 
  console.log('Some code...') 
} 
function changeLanguage(lang) { 
     lang = lang || "en_EN"; 
     jQuery.i18n.properties({ 
     path : 'js/libs/language', 
     mode : 'both', 
     language: lang, 
     callback: refresh_i18n 
   });
} 
changeLanguage("en_US"); 
</script>

但是当我通过更改下拉菜单调用时:

$('#selectLanguage').change(function(){ 
    changeLanguage(this.value); 
});

上面报错

【问题讨论】:

  • 你添加i18n引用并初始化了吗?
  • 您是否正确包含了库? github.com/wikimedia/jquery.i18n
  • 更新您的问题。不要在 cmets 中添加代码。

标签: javascript properties internationalization


【解决方案1】:

可能 i18n 库在 jquery 之前加载(问题哈哈)。

因此,将 jQuery 加载放在 html 的头部,将插件 i18n(以及其他,如果你正在使用)放在 html 的正文(我建议在正文的末尾)。

那一定能解决问题。

【讨论】:

  • 所以我们需要更多的代码来看看发生了什么。你能做到吗? (小提琴可能会更好)。
  • 感谢您的回答。解析为在body标签之后加载的i18n库文件。
猜你喜欢
  • 1970-01-01
  • 2020-11-18
  • 2017-05-12
  • 1970-01-01
  • 1970-01-01
  • 2022-06-10
  • 1970-01-01
  • 2019-07-19
  • 1970-01-01
相关资源
最近更新 更多