1

jquery 1.9 にアップグレードしてから、チェックボックスのチェック/チェック解除のためにスクリプトが機能しなくなりました。

テーブル内のチェックボックスのリストの選択/チェックを制御するメイン チェック ボックスがあります。新しいjqueryバージョンにアップグレードした後、最初に「すべてチェック」チェックボックスをクリックすると選択されます。「すべてチェック」を 2 回クリックすると、チェックボックスがオフになりますが、「すべてチェック」を 2 回クリックすると、テーブルのチェックボックスが機能しなくなります。

ここに画像の説明を入力

脚本:

    $("#itemsList .checkall").on("click", function () {
        $(".checkbox").attr("checked", $(this).is(':checked'));
    });

これも試しました:

    $("#itemsList .checkall").click(function () {
        $(".checkbox").attr("checked", $(this).is(':checked'));
    });

html "すべてチェック":

<input type="checkbox" id="checkall" name="checkall" class="checkbox checkall">

HTML テーブルのチェックボックス:

<input type="checkbox" value="1" class="checkbox">

これは、jquery 1.9 に切り替える前は問題なく動作していました。何が与えますか??

4

2 に答える 2

2

jQuery 1.6 以降、要素のプロパティを変更するには、 のprop代わりにメソッドを使用する必要がありattrます。

$("#itemsList .checkall").on("change", function () {
     $(".checkbox").prop("checked", this.checked);
});
于 2013-04-24T08:30:15.667 に答える
2

次の理由から、代わりにprop()を使用してみてください。

jQuery 1.6 以降、.attr() メソッドは、設定されていない属性に対して undefined を返します。フォーム要素のチェック状態、選択状態、無効状態などの DOM プロパティを取得および変更するには、.prop() メソッドを使用します。

$("#itemsList .checkall").on("change", function () {
    $(".checkbox").prop("checked", this.checked);
});
于 2013-04-24T08:31:41.143 に答える