Javascript 在Safari中未触发JQuery单击事件?

Javascript 在Safari中未触发JQuery单击事件?,javascript,jquery,select,safari,jquery-events,Javascript,Jquery,Select,Safari,Jquery Events,当用户从选择框中选择一个选项时,我正在尝试做一些事情——尽可能简单,对吗?我正在使用jQuery1.3.1注册一个带有选择框id的点击处理程序。一切都很好,直到我使用Chrome和Safari进行测试,发现它不起作用 Firefox 3.05-是 即7.0.5730.13-是 IE6Eolas-是 萨拉菲3.2.1-否 铬1.0.154.43-第 见以下代码: <html> <head> <script language="javascript" type=

当用户从选择框中选择一个选项时,我正在尝试做一些事情——尽可能简单,对吗?我正在使用jQuery1.3.1注册一个带有选择框id的点击处理程序。一切都很好,直到我使用Chrome和Safari进行测试,发现它不起作用

Firefox 3.05-是 即7.0.5730.13-是 IE6Eolas-是 萨拉菲3.2.1-否 铬1.0.154.43-第 见以下代码:

<html>
<head>
    <script language="javascript" type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
    <script language="javascript">
    $(document).ready(function(){
        $('#myoption').click(function() { alert('Select Dropdown was clicked: '+ $('#myoption').val()); });
    });     
    </script>
</head>
<body>
    <select id="myoption">
    <option value="A">A</option>
    <option value="B">B</option>
    </select>
</body>
</html>

有人知道我该怎么做才能让它工作吗?警报最终会触发,但只有在双击选择框后才会触发?

我发现了问题。对于选择框,您需要为更改事件而不是单击事件注册处理程序。奇怪的是,Firefox和IE使用点击事件

总之,以下代码适用于所有浏览器:

<html>
<head>
    <script language="javascript" type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
    <script language="javascript">
    $(document).ready(function(){
        $('#myoption').change(function() { alert('Select Dropdown was clicked: '+ $('#myoption').val()); });
    });         
    </script>
</head>
<body>
    <select id="myoption">
    <option value="A">A</option>
    <option value="B">B</option>
    </select>
</body>
</html>

Safari和Chrome都是基于webkit的浏览器。Webkit使用操作系统中的本机下拉列表元素,而不是实现下拉列表本身,不幸的是,本机下拉列表不支持单击事件。出于同样的原因,它们也不支持选项元素或其他整洁技巧的CSS


唯一的跨浏览器方法是使用一个和大量javascript手动实现这些功能。

我认为更改在IE中不起作用。IIRC,在元素失去焦点之前不会触发。是的,在IE中选择更改有效-当选择其他时,可以在选择框中看到我使用的代码的实时版本,将显示一个文本框,询问更多信息。