ホームページ  >  記事  >  ウェブフロントエンド  >  JQuery はラジオまたは checkbox_jquery の変更イベントをトリガーします

JQuery はラジオまたは checkbox_jquery の変更イベントをトリガーします

WBOY
WBOYオリジナル
2016-05-16 17:46:221322ブラウズ

今朝関数を作りたいのですが チェックボックスをオンにすると、非表示のレイヤーが表示されます。 チェックボックスをオフにすると、選択したレイヤーが非表示になります。
最初のコードは次のとおりです:

コードをコピーします コードは次のとおりです:

$(function() {
$("#ischange").change(function() {
alert("checked");
});
});長い間、まったく反応がありませんでした。 Baidu で検索したところ、一部の専門家は、上記のコード行は Firefox などのブラウザでは正常に実行できる、つまり、チェック ボックスをオンまたはキャンセルするとダイアログ ボックスが表示されますが、IE では正常に実行されないことを指摘しました。つまり、チェックボックスをオンまたはオフにしても、ダイアログ ボックスはすぐには表示されません。
チェックボックス以外の場所をクリックする前に、チェックボックスを選択またはキャンセルする必要があります。これは、IE が変更イベントをトリガーする前にチェックボックスがフォーカスを失うまで待機するためであると言われています。
改善されたコードは次のとおりです:



コードをコピーします コードは次のとおりです: $(function (){
if ($.browser.msie) {
$('input:checkbox').click(function () {
this.blur();
this .focus() ;
});
$("#ischange").change(function() {
alert("checked");
}); 🎜>}) ;



追加の
: チェック ボックスの値を変更した後、IE はフォーカスが失われるのを待ちますが、クリック イベントはすぐにトリガーされます。クリック イベントは、チェック ボックスのフォーカスを失うために使用されます。これにより、change イベントがトリガーされ、フォーカスがチェック ボックスに戻ります。
ラジオの場合は、チェックボックスをラジオに置き換えるだけです。

JQuery では、ラジオまたはチェックボックスに変更イベントを追加するときに、HTML で次のコードを記述するのと同じように、その値が変更されると変更イベントがトリガーされます:


コードをコピーします
コードは次のとおりです: ,
そして、JQuery を使用するコードは次のとおりです:



コードをコピー
コードは次のとおりです: $(document).ready(function(){ $("testCheckbox").change(function() { alert("オプションが変更されました!");
});


上記のコードは、チェックを選択した場合に正常に実行できます。チェック ボックスをオンまたはオフにすると、ダイアログ ボックスが表示されますが、IE では正しく動作しません。つまり、チェック ボックスをオンまたはオフにしても、ダイアログ ボックスはすぐには表示されません。この問題の理由の 1 つは、IE が変更イベントをトリガーする前にチェック ボックスがフォーカスを失うからであると言われていますが、現時点ではこの問題は修正されていません。インターネットは解決策を提供しています:



コードをコピー

コードは次のとおりです: $( function () {if ($.browser.msie) {$(' input:checkbox').click(function () { this.blur(); this.focus(); }}); 上記のコードは、チェックボックスが追加されている限り、ラジオに適用できます。上記のコードの原理は、チェック ボックスの値が変更されると、IE はフォーカスを失うのを待機しますが、クリックはイベントはすぐにトリガーされるため、クリック イベントを使用してチェック ボックスのフォーカスを失い、変更イベントがトリガーされ、フォーカスがチェック ボックスに戻ります。チェックボックスの場合、クリック イベントと変更の両方で同じ機能を実行できるのに、なぜ直接クリック イベントを使用して値を変更しないのかと疑問に思う人もいるかもしれません。ラジオの場合は異なります。同じラジオをクリックし続けて値を変更できます。変化がない場合、クリック イベントは引き続きトリガーされますが、変更イベントはトリガーされません。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。