0

这个问题与我上一个关于 jQuery 1.4 的问题有关。据说他们修复了导致更改处理程序无法在 IE 中工作的错误,但并未完全修复。

我正在尝试将实时更改处理程序绑定到选择元素。大多数情况下,当我更改它时,事件处理程序会触发。但是,如果我在页面加载后立即切换到元素,然后尝试使用键盘更改值,然后将其移开,则事件不会在 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>
4

1 回答 1

2

对于 jQuery 1.4,修复在这里:http: //github.com/jquery/jquery/commit/435772e29b4ac4ccfdefbc4045d43f714e153381

对于 jQuery 1.4.1,修复在这里:http: //github.com/jquery/jquery/commit/942f8f7f75a55a36e6b9745030d3b3c983518aa8

这是错误讨论: http ://dev.jquery.com/ticket/5851

于 2010-01-27T19:48:29.550 回答