4

可能重复:
JQuery 函数不适用于 Mac 上的 Chrome,但适用于 Win 7 和所有其他浏览器的 Chrome

我有一个选择 - 选项列表

<div class="social-option">
    <select name="hex_theme_options[social-service-1]">
        <option selected="selected" value="facebook">facebook</option>
        <option value="0"></option>
        <option value="twitter">twitter</option>
        <option value="linkedin">linkedin</option>
        <option value="e-mail">e-mail</option>
        <option value="phone">phone</option>
        <option value="instagram">instagram</option>
        <option value="flickr">flickr</option>
        <option value="dribbble">dribbble</option>
        <option value="skype">skype</option>
        <option value="picasa">picasa</option>
        <option value="google-plus">google-plus</option>
        <option value="forrst">forrst</option>
    </select>
</div>

为什么这在 PC 上有效,但在 mac 上无效?

$('.social-option select').on('click', function () {
    alert('bla');
});

http://jsfiddle.net/4BBcZ/

更新
我需要在 click事件上使用,而不是在 change 上使用。

4

2 回答 2

8

改用change事件:

$('.social-option select').on('change', function () {
    alert('bla');
});

文档中

当元素的值改变时,change 事件被发送到元素。此事件仅限于元素、框和元素。对于选择框、复选框和单选按钮,当用户使用鼠标进行选择时会立即触发该事件,但对于其他元素类型,该事件会延迟到元素失去焦点为止。

IIRC,该click事件<option>在 Firefox 中适用于 s,但在 Chrome 中不起作用。最好的、最受支持的事件是change.

要获取所选选项的值,只需.val()像使用任何其他输入一样使用:

$('.social-option select').on('change', function () {
    alert($(this).val());
});
于 2012-07-08T15:53:37.663 回答
4

而不是“点击”事件,使用“更改”,如

 $(".social-option select").change(function(){
       alert('bla');    
    });

堆栈溢出参考

于 2012-07-08T15:52:29.600 回答