Javascript 更改selectbox中的语言时的jQuery调用函数

Javascript 更改selectbox中的语言时的jQuery调用函数,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,我有以下问题。 为了翻译一个网站,我正在使用插件。 这个很好用。但是,我需要一个带有标志和语言的CSS样式的选择框,当选择不同的选项时,应调用$(“[数据本地化]”).localize(“示例”,{language:$(this).attr('value'))来翻译页面 这段代码我现在正在使用,它对于一个普通的、没有样式的selectbox很好用 <script type="text/javascript"> $(function() { $('#polygl

我有以下问题。 为了翻译一个网站,我正在使用插件。 这个很好用。但是,我需要一个带有标志和语言的CSS样式的选择框,当选择不同的选项时,应调用
$(“[数据本地化]”).localize(“示例”,{language:$(this).attr('value')
)来翻译页面

这段代码我现在正在使用,它对于一个普通的、没有样式的selectbox很好用

<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>
此插件()不符合要求。我很快发现了错误:

  • 它不允许链接,因为它不返回
    this
  • 它一次只能在一个元素上工作(不使用
    each()

  • 它有一个奇怪的元素层次结构。它似乎需要一个id为的元素,包含一个
    表单
    ,包含一个
    选择
    (如中所示)。在我看来,这样的插件应该只在语言选择元素上调用

  • 它似乎是自动导航的,希望配置页面结构。该奇特框中的每个
    li
    项都包含指向相应页面的链接
  • 因此,它既不会触发它所在的表单,也不会触发您想要收听的
    change
    事件

目前,你不能随心所欲地使用这个特定的插件。如果你想修复所有的bug,我祝你快乐:-)尽管如此,还是可以操纵插件代码,让你在选择事件上注册回调(在这里你可以调用本地化插件)。否则,你需要选择其他选择插件(或者自己从头开始构建一个,修改现有代码)

“当前代码不起作用”什么东西不起作用?是的。没有看到你的HTML,就很难诊断这个问题。我们需要看看你在特定元素中使用了什么ID。polyglot插件用jQuery不认为是selectbox的其他东西替换了普通的selectbox HTML代码,因此,
change
不起作用。它看起来像e该插件不适用于此类用途…但您可能可以编辑源代码并使其触发事件。谢谢您的回复。您知道其他插件有一个很好的选择框,我可以使用它吗?没有什么特别的,但我确信jQuery UI包含构建一个选择框的工具。
$('#polyglotLanguageSwitcher').polyglotLanguageSwitcher({
    effect: 'fade'
});