ここでは、問題を再現する最も簡単なコードを示します。 (AJAX呼び出しでエラーが発生した場合、私の現実世界の例では、私は、チェックボックスをリセットしています。)IE9ではユーザーが画面上の任意の場所をクリックすると、IEはチェックボックスの変更イベントを発生させます。
<html>
<script src="http://code.jquery.com/jquery-1.4.2.js"></script>
<script>
$(document).ready(function(){
$('#ckbx').change(function(e){
alert('fired.');
this.checked = !this.checked;
})
});
</script>
<form>
<input id="ckbx" type="checkbox"></input>
</form>
</html>
、私はチェックボックスをクリックしたとき、それは警告を表示します。それから、時間を待ってから、ページの他の場所をクリックすると、再びイベントが発生します。
this.checked = !this.checked
を削除すると問題が解決します。
誰でもこのことを私に説明できますか?または、この問題を回避する方法を提供しますか?
更新日: 私はjquery 1.4.2を使用しています。 jquery 1.6ではこれは問題ではありません。しかし、私たちはリリースに近づいており、jqueryのバージョンを変更することには消極的です。
jQueryのIE9のために更新されています。 IE9に固有の古いjQueryバグを見つけてjQuery 1.6で修正したので、あなたが私たちに何を望んでいるのか分かりません。 – Sparky
IE7ではjQuery 1.6.2でもそれができますので、それは関係ないと思います。 – Pointy
'Khm'!.....「IE」と聞いたことがありますか? :) –