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で開き、selectがフォーカスされ、上/下/文字のキーボードボタンで任意の数字を選択し、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 に答える