选择一个<选择>以触​​发任何更改处理程序的方式使用 jQuery 的选项

发布于 2024-10-02 09:20:46 字数 945 浏览 2 评论 0原文

我正在使用谷歌翻译的下拉菜单来翻译网站,但这不会跨页面持续存在,因此我尝试在页面加载时手动选择所需的选项以使其持续存在。

但是,仅使用 $('#google_translate_element select').val('es'); 不会触发实际翻译页面的事件。我不知道如何以实际触发 onchange 事件的方式以编程方式操纵它。

我也尝试过:

$('#google_translate_element select option[value=es]').attr('selected', 'selected').trigger('change');

$('#google_translate_element select').val('es').trigger('change');

没有运气。有什么想法吗?

作为记录,这是我正在使用的 HTML(由 Google 翻译脚本输出)

<div id="google_translate_element">
  <div class="skiptranslate goog-te-gadget" style="">
    <div id=":1.targetLanguage" style="display: inline; ">
      <select class="goog-te-combo">
        <option value="">Select Language
        </option>
        <option value="es">Spanish
        </option>
      </select>
    </div>
  </div>
</div>

I'm using Google Translate's dropdown menu to translate a site, but this doesn't persist across pages, so I'm trying to manually select the needed option on page load to make it persistent.

However, just using $('#google_translate_element select').val('es'); doesn't trigger the event that actually translates the page. I can't figure out how to manipulate this programmatically in a way that actually triggers the onchange event.

I've also tried:

$('#google_translate_element select option[value=es]').attr('selected', 'selected').trigger('change');

and

$('#google_translate_element select').val('es').trigger('change');

No luck. Any ideas?

For the record, here's the HTML I'm working with (which is output by Google Translate's script)

<div id="google_translate_element">
  <div class="skiptranslate goog-te-gadget" style="">
    <div id=":1.targetLanguage" style="display: inline; ">
      <select class="goog-te-combo">
        <option value="">Select Language
        </option>
        <option value="es">Spanish
        </option>
      </select>
    </div>
  </div>
</div>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

椵侞 2024-10-09 09:20:46

我发现 http://translateth.is/ 并最终使用它而不是这些废话。默认情况下,它会在页面加载时持续存在,并且仍然使用 Google Translate 的 API。

I found http://translateth.is/ and ended up using that instead of this nonsense. It persists across page loads by default and still uses Google Translate's API.

半岛未凉 2024-10-09 09:20:46

您的代码对我来说效果很好...代码事件不是“更改”而是“单击”。

Your code works fine for me ... code it be that the event is not "change" but rather "click".

许你一世情深 2024-10-09 09:20:46

试试这个:
$('#google_translate_element select').bind('change', function(){alert('changed');});
它注册 onchange 事件的处理程序。

Try this:
$('#google_translate_element select').bind('change', function(){alert('changed');});
That registers handler for onchange event.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文