今朝関数を作りたいのですが チェックボックスをオンにすると、非表示のレイヤーが表示されます。 チェックボックスをオフにすると、選択したレイヤーが非表示になります。
最初のコードは次のとおりです:
$(function() {
$("#ischange").change(function() {
alert("checked");
});
});長い間、まったく反応がありませんでした。 Baidu で検索したところ、一部の専門家は、上記のコード行は Firefox などのブラウザでは正常に実行できる、つまり、チェック ボックスをオンまたはキャンセルするとダイアログ ボックスが表示されますが、IE では正常に実行されないことを指摘しました。つまり、チェックボックスをオンまたはオフにしても、ダイアログ ボックスはすぐには表示されません。
チェックボックス以外の場所をクリックする前に、チェックボックスを選択またはキャンセルする必要があります。これは、IE が変更イベントをトリガーする前にチェックボックスがフォーカスを失うまで待機するためであると言われています。
改善されたコードは次のとおりです:
if ($.browser.msie) {
$('input:checkbox').click(function () {
this.blur();
this .focus() ;
});
$("#ischange").change(function() {
alert("checked");
}); 🎜>}) ;
追加の
: チェック ボックスの値を変更した後、IE はフォーカスが失われるのを待ちますが、クリック イベントはすぐにトリガーされます。クリック イベントは、チェック ボックスのフォーカスを失うために使用されます。これにより、change イベントがトリガーされ、フォーカスがチェック ボックスに戻ります。
ラジオの場合は、チェックボックスをラジオに置き換えるだけです。
JQuery では、ラジオまたはチェックボックスに変更イベントを追加するときに、HTML で次のコードを記述するのと同じように、その値が変更されると変更イベントがトリガーされます:
コードをコピーします
そして、JQuery を使用するコードは次のとおりです:
コードをコピー
});
上記のコードは、チェックを選択した場合に正常に実行できます。チェック ボックスをオンまたはオフにすると、ダイアログ ボックスが表示されますが、IE では正しく動作しません。つまり、チェック ボックスをオンまたはオフにしても、ダイアログ ボックスはすぐには表示されません。この問題の理由の 1 つは、IE が変更イベントをトリガーする前にチェック ボックスがフォーカスを失うからであると言われていますが、現時点ではこの問題は修正されていません。インターネットは解決策を提供しています:
コードをコピー