2

我有一个代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript">
        $(document).ready( function() {
            $("#my_select").change(function(e){alert(e);})
            $("#my_select").focus();
        });
    </script>   
  </head>
  <body>
    <select id="my_select">
        <option>1</option>
        <option>2</option>
        <option>3</option>
    </select>
    <input />
  </body>
  </html>

在 IE 中打开,选择将成为焦点,使用向上/向下/字母键盘按钮选择任何数字,然后按 enter/tab 键不会触发警报。为什么????

PS:是的,jquery 版本很旧,我知道,但我现在无法切换到新版本。
PS2:IE8 和 IE6

4

1 回答 1

2

它可能不会在模糊(输入/选项卡)上触发,因为它已经在向上或向下箭头上触发了——在 IE9 中尝试它时它就是这样做的。

IE(也是 Opera)在处理元素change事件方面一直是“错误的” : http ://www.quirksmode.org/dom/events/change.html#t05<select>

另请注意,jQuery 1.4.2 和旧版本 IE 之间的问题可能会导致此问题,因为报告了 1.4.2 的一些错误并在 1.4.3 中修复:#6374#6956

于 2012-06-04T10:49:24.917 回答