我有以下问题。
要翻译网站,我正在使用jQuery Localize插件。
这很好用。但是,我想要一个带有标志和语言的CSS样式选择框,当选择了不同的选项时,应该调用$("[data-localize]").localize("example", { language: $(this).attr('value')
来翻译页面。
我正在使用的这段代码,它适用于普通的非风格选择框。
<script type="text/javascript">
$(function() {
$('#polyglot-language-options').change(function() {
if ($(this).attr('value') == "en") {
$("[data-localize]").localize("example", {
language: $(this).attr('value')
});
}
else if ($(this).attr('value') == "nl") {
location.reload();
}
});
});
</script>
但我想设计它,所以我尝试整合"polyglot" language switcher。但是,当前代码不起作用。
如何整合$(“[data.localize]”)。localize();函数在这段代码中:
$('#polyglotLanguageSwitcher').polyglotLanguageSwitcher({
effect: 'fade'
});
答案 0 :(得分:1)
此插件(source code)不遵循guidelines for jQuery plugin design。我发现的错误很快:
this
一次仅适用于一个元素(不使用each()
)
它有一个奇怪的元素层次结构。它似乎需要一个带有id的元素,其中包含form
,其中包含select
(如demo中所示)。在我看来,应该仅在语言选择元素上调用这样的插件。
li
项都包含指向相应页面的链接。change
事件。就目前而言,您无法根据需要使用此特定插件。如果你想修复所有错误,我希望你有一个快乐的时光:-)尽管如此,可能来操纵插件代码,让你在select事件上注册回调(你可以在那里调用本地化插件)。否则,您需要选择其他选择插件(或者自己从头开始构建一个,调整现有代码)