为什么 mac 浏览器上的选择框没有响应单击事件

Why does select box on mac chrome doesn't respond to click event?

本文关键字:响应 单击 事件 选择 mac 浏览器 为什么      更新时间:2023-09-26

可能的重复项:
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/

更新
我需要在单击事件中使用,而不是在更改时使用

改用 change 事件:

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

从文档中:

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

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

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

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

代替"click"事件,使用"change",如

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

堆栈溢出引用