jquery - 事件不适用于 jQuery 和 Chrome 选择选项

标签 jquery google-chrome

我有以下 html 代码

<select>
  <option class="language" langv="en" value="en">English</option>
  <option class="language" langv="fr" value="fr">French</option>
</select>

和 jquery 代码,

$(".language").click(function(){
  var lang = $(this).attr("langv");

  switch(lang){
      case "en":
         window.location.href = "index.php";
      break;
      case "fr":
         window.location.href = "fr/";
      break;
      default:
         // code
      break;
   }

});

上面的代码在 Firefox 和 IE 中完美运行,但在 Chrome 中不起作用。

你能帮我一下吗?我正在使用 jquery-1.10.2。

最佳答案

您正在寻找change事件而不是click

所以,我的建议如下。

将 HTML 更改为:

<select class="language">
   <option langv="en" value="en">English</option>
   <option langv="fr" value="fr">French</option>
</select>

并将你的 jQuery 更改为:

$(".language").change(function(){
    var lang = $(this).val();
    switch(lang){
       case "en":
         window.location.href = "index.php";
       break;
       case "fr":
         window.location.href = "fr/";
       break;
       default:
         // code
       break;
    }
});

<强> DEMO

如果您使用自定义属性,我建议使用 HTML 5 data-* 属性。您可以看一下 John Resig 关于它们的文章 over here

关于jquery - 事件不适用于 jQuery 和 Chrome 选择选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20612564/

相关文章:

javascript - 如何从 Rails 代码中删除新行 (\n)?

jquery - 使用 jquery 如何测试父级是否是第一个子级?

css - Chrome 37 计算四舍五入

css - Chrome 中的字体像素化问题 (HTML5/CSS3)

javascript - 让浏览器获取源代码并重新编译脚本以进行实时编辑

javascript - 如何使用 jquery 选择多个 HTML 元素

javascript - 使用 javascript/jquery 加载文件

javascript - 使用 jQuery 在延迟后翻译(逐渐 - 使用动画) svg 元素

javascript - 谷歌浏览器 - 如何在后台打开新窗口

javascript - 将变量作为属性名称传递