8

ツリービューのチェックボックスの自動チェックについて助けが必要です。

チェックボックスをクリックすると、リスト内のすべての子アイテムのチェックボックスが自動的にチェックされます。問題は、それが機能しないことです。

treeview.find('input[type=checkbox]').each(function () {
    $j(this).click(function () {
        if ($j(this).is(':checked')) {
            $j(this).siblings('ul').find('input[type=checkbox]').attr('checked', 'checked');
        } else {
            $j(this).siblings('ul').find('input[type=checkbox]').removeAttr('checked');
        }
    });
});

したがって、コードはすべてを示しており、すべてのチェックボックスを見つけて、それぞれにクリックイベントをバインドします。アイテムがクリックされると、チェックされているかどうかをチェックし、すべてのチェックボックスを見つけてそれらの属性をチェック済みに設定し、そうでない場合はすべてのチェックボックスを見つけてそれらのチェック済み属性を削除します。私のセレクターは問題なく動作するので、それは問題ではありません。

チェックボックスをクリックすると、すべてのチェックボックスがチェックされ、チェックを外してもまだ機能しています。しかし、もう一度試してみると、もう機能しません。それはとても奇妙です!そして、最も奇妙なことは、コードを検査すると、チェックボックスがあることを確認できますがchecked="checked"、ブラウザーはチェックされた状態をレンダリングしないことです (実際、これが主な問題です)。

4

1 に答える 1