ホームページ >ウェブフロントエンド >jsチュートリアル >Firefox_jqueryでjquery操作のチェックボックスが2回目にチェックできない問題を解決

Firefox_jqueryでjquery操作のチェックボックスが2回目にチェックできない問題を解決

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

最近、職場でjqueryを使用してチェックボックスを操作し、次のメソッドを使用してすべてを選択し、選択を反転します:

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

var ischecked=allCheckObj.is(':checked');
ischecked?checksObj.attr('checked',true):checksObj.attr(' selected',false);

デバッグ中はIEでは問題なかったのですが、互換性を考慮してFirefoxを試してみると問題が発生しました。そこで、次の実験を行いました。
チェック ボックスは、1 回クリックして選択し、もう一度クリックしてチェックを外すなどのクリック イベントにバインドされています。この機能は IE では問題なく動作しますが、Firefox でテストしたところ、最初の 2 回は問題なく選択と解除が正常に表示されましたが、再度チェックボックスを選択すると、チェックボックスの属性値が に変わります。 「チェック済み」ですが、チェックボックスに選択状態が表示されなくなりました。明らかに属性値が変更されていますが、チェックボックスが表示されません。コードを修正しましたが、正しい表示状態を取得できず、長い間苦労しましたが、原因がわかりませんでした。
正解:後日、アイドルさんに指摘されて、jQueryのバージョンの問題であることが判明しました。私は
$("**").attr("attrName"); を使用していますが、jQuery のバージョンは 1.9 なので、互換性と安定性に問題があります。
jQuery API は、jQuery 1.6 が prop を使用する必要があることを明確に示しています。特に checkBox のチェックされた属性を判断するために、つまり、
コードをコピー コードは次のとおりです。

$("input[type='checkbox']").prop("checked");
$("input[type=' checkbox']" ).prop("disabled", false);
$("input[type='checkbox']").prop("checked", true);

Change attr to prop を使用するときに使用され、問題は解決されます。
この奇妙な問題に遭遇したことがありますか?早速試してみます
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。