0

ラジオボタンのように動作するボタンが3セットあります。

ラジオボタンは正常に機能しますが、IDが#filter1のボタンのアクティブクラスを削除する必要があります。他のボタンのいずれかにアクティブクラスがある場合にのみ、なし。最善の方法はif/thenソリューションでしょうか、それとも.filterでこれを行うことができますか?

これが無線の動作です。

$('.filter .btn').click(function () {
    $(this).addClass('active').siblings('.active').removeClass('active');
});

これはhtmlです:

<div class="btn-group pull-right filter" data-toggle="buttons-radio">
    <button type="button" class="btn btn-large btn-flat" id="filter1-none">Show All</button>
</div>

<div class="btn-group pull-right mr filter" data-toggle="buttons-radio">
    <button type="button" class="btn btn-large btn-flat" id="filter1-LI">LI</button>
    <button type="button" class="btn btn-large btn-flat" id="filter1-LPO">LPO</button>
    <button type="button" class="btn btn-large btn-flat" id="filter1-NLI">NLI</button>
</div>

<div class="btn-group pull-right mr filter" data-toggle="buttons-radio">
    <button type="button" class="btn btn-large btn-flat" id="filter1-Low">Low</button>
    <button type="button" class="btn btn-large btn-flat" id="filter1-Medium">Medium</button>
    <button type="button" class="btn btn-large btn-flat" id="filter1-Urgent">Urgent</button>
</div>
4

3 に答える 3

1
  $('.filter .btn').click(function () {
        $('#filter1-none').removeClass('active');
        $(this).addClass('active').siblings('.active').removeClass('active');
    });
于 2012-11-14T23:42:34.567 に答える
0

私が正しく理解していれば、これはあなたがあなたのジャバスクリプトに望むものです。クリックしたボタンが#filter1-noneアクティブなクラスを削除していない場合

var $none = $('#filter1-none');
$('.filter .btn').click(function () {
   $none.removeClass('active');
   $(this).addClass('active').siblings('.active').removeClass('active');
});​
于 2012-11-14T23:43:18.903 に答える
0

正しく理解しているかどうかはわかりませんが、「アクティブ」クラスを持つ要素が他にあるかどうかを知るために、セレクターによって返される配列に要素が含まれているかどうかを確認してみませんか?

if ($('.active').length > 1) {
    // There are two elements with the 'active'
    // class. One of them is the button with id
    // filter1-none
    $('#filter1-none').removeClass('active');
}
于 2012-11-14T23:22:23.600 に答える