jQuery 1.4.1 中的实时更改处理程序仍然不适用于 IE 中的选择元素
这个问题与我的 最后一篇是关于 jQuery 1.4 的。他们据称修复了导致更改处理程序无法在 IE 中工作的错误,但尚未完全修复。
我正在尝试将实时更改处理程序绑定到选择元素。大多数时候,当我更改它时,事件处理程序会触发。但是,如果我在页面加载后立即按 Tab 键切换到该元素,然后尝试使用键盘更改值,然后按 Tab 键离开该元素,则该事件不会在 IE 中触发。仅当我第一次尝试更改该值时才会发生这种情况。我在 IE 6、7 和 8 中注意到了这一点。在我尝试过的任何其他浏览器中都没有发生这种情况。我确信这是 jQuery 中的一个错误。有谁知道解决这个问题的简单方法?
这是一个演示该错误的示例页面:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
<title>jQuery live change handler test 2</title>
</head>
<body>
<script type="text/javascript" src="jquery-1.4.1.min.js"></script>
<select id="test">
<option value="a">a
<option value="b">b
</select>
<script type="text/javascript">
$("#test").live("change", function() {
alert('hi');
});
</script>
</body></html>
This question is related to my last one about jQuery 1.4. They supposedly fixed the bug causing the change handlers not to work in IE, but it is not fully fixed.
I am trying to bind a live change handler to a select element. Most of the time, when I change it, the event handler fires. But if I tab to the element immediately after the page loads, then try to change the value using the keyboard, then tab away from it, the event doesn't fire in IE. This only happens the first time I try to change the value. I noticed this in IE 6, 7, and 8. It does not happen in any other browsers I tried. I am sure it is a bug in jQuery. Does anyone know a simple way around this?
Here is an example page to demonstrate the bug:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
<title>jQuery live change handler test 2</title>
</head>
<body>
<script type="text/javascript" src="jquery-1.4.1.min.js"></script>
<select id="test">
<option value="a">a
<option value="b">b
</select>
<script type="text/javascript">
$("#test").live("change", function() {
alert('hi');
});
</script>
</body></html>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
对于 jQuery 1.4,修复如下:
http://github.com/jquery/jquery/commit/435772e29b4ac4ccfdefbc4045d43f714e153381
对于 jQuery 1.4 .1 修复在这里:
http://github.com/jquery/jquery/commit/942f8f7f75a55a36e6b9745030d3b3c98351
8aa8 这是错误讨论:
http://dev.jquery.com/ticket/5851
For jQuery 1.4 the fix is here:
http://github.com/jquery/jquery/commit/435772e29b4ac4ccfdefbc4045d43f714e153381
For jQuery 1.4.1 the fix is here:
http://github.com/jquery/jquery/commit/942f8f7f75a55a36e6b9745030d3b3c983518aa8
Here is the bug discussion:
http://dev.jquery.com/ticket/5851