Jquery选择器在Safari中不起作用

时间:2011-06-23 17:46:50

标签: jquery jquery-selectors safari

我无法在下面的javascript中使用jquery选择器在Safari(5.0.4)中工作:

$("#js-nav-bar option").click(function() {
    document.location.href = $(this).val() ;
}) ;

只使用"#js-nav-bar"作为选择器可以在Safari中使用,但我需要在HTML中定位<option>元素。

选择器$("option")在Safari中也不起作用,但我知道jquery脚本正在运行。我的代码在FF(3.6.16)和Opera(9.27)中工作,我已经针对W3验证器和我对JSlint的javascript验证了我的HTML。

有没有办法可以更好地编写我的jquery选择器,还是可以构建一个复合javascript选择器来解决Safari错误?

3 个答案:

答案 0 :(得分:4)

这可能与你想要的绑定有关。而不是将点击事件绑定到<option>本身,而是绑定到<select>的{​​{1}}事件。

change

看看它是否有效。

答案 1 :(得分:2)

在您的代码中,您有#js-nav-bar作为div:

试试这个:

$('#js-nav-bar select').change(function(e){ //<-- on change of the select
  document.location.href = $(this).val() ;
});

另外我在你的代码中注意到你所有selects都有相同的类(lim-width),所以请使用它!

$('.lim-width').change(function(){
   document.location.href = $(this).val();
})

答案 2 :(得分:0)

您应该使用更改事件而不是点击事件

$('.target').change(function() {
  alert('Handler for .change() called.');
});