Javascript 在Safari中未触发JQuery单击事件?
当用户从选择框中选择一个选项时,我正在尝试做一些事情——尽可能简单,对吗?我正在使用jQuery1.3.1注册一个带有选择框id的点击处理程序。一切都很好,直到我使用Chrome和Safari进行测试,发现它不起作用 Firefox 3.05-是 即7.0.5730.13-是 IE6Eolas-是 萨拉菲3.2.1-否 铬1.0.154.43-第 见以下代码: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=
<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中选择更改有效-当选择其他时,可以在选择框中看到我使用的代码的实时版本,将显示一个文本框,询问更多信息。