0

電子メールの購読を管理するページを作成していますが、 [すべてのグループから購読を取り消す] オプションがわかりません。

問題

私の問題は、 Un-subscribe from allオプションで、その特定のグループに対応する Un-subscribe 列のラジオ ボタンを有効にする方法がわからないことです。

Un-subscribe 列のラジオ ボタンをチェックしながら.selected、ラベルにクラスを追加して、オプションが選択されていることを視覚的に伝えられるようにスタイルを設定する必要もあります。

また、特定のグループ内で[サブスクライブ] オプションがオンになっている場合、その特定のグループの [すべてのサブスクライブを解除]チェックボックスがオフになり、クラス.selectedが削除されることに注意してください。

少しわかりにくい (またはかなり) ことはわかっているので、これのDEMOを作成しました。

JS コメントでわかるように、ラジオ ボタンを選択できますが、ラジオ ボタンの特定のグループではなく、すべてのグループのすべてのラジオ ボタンがチェックされます。

.parent().parents()、メソッドも使用してみました.closest()が、機能させることができません。

これに関するヘルプは大歓迎です。

前もって感謝します。

4

2 に答える 2

1

これは次のように行うことができます。

$(".unsubs-chkbx-group").change(function() {
    var $table = $(this).closest('tbody');

    // uncheck all
    $('tr:not(.group) input', $table).prop('checked', false);
    $('label', $table).removeClass('selected');

    if(this.checked) {
        var $elements = $('.opt-out', $table);
        $('label', $elements).addClass('selected');
        $('input', $elements).prop('checked', true);
    }
});

$('tbody input[type=radio]').change(function() {
    var $element = $(this);
    var $row = $element.closest('tr');
    $('label', $row).removeClass('selected');

    $element.parent().addClass('selected');
});

</p>

デモ

于 2012-08-13T20:09:10.700 に答える
1

http://jsfiddle.net/8MHHa/1/

$(".unsubs-chkbx-group").click(function() {
    $(this).parents('table').first().find('.opt-out input:radio').attr('checked', true);
    $(this).parents('table').first().find('.opt-out label').addClass('active');
    //$('.opt-out input:radio').attr('checked', true);
    //$('.opt-out label').addClass('active');    
});
于 2012-08-13T19:51:04.997 に答える