/ / addClass, removeClass, si problème hasClass - jquery

addClass, removeClass, si le problème hasClass - jquery

J'ai 3 ensembles de boutons qui se comportent comme des boutons radio.

Les boutons radio fonctionnent bien mais je dois enleverla classe active du bouton avec l'ID # filter1-none SEULEMENT si l'un des autres boutons a une classe active. Le meilleur moyen serait-il une solution si / alors ou puis-je le faire avec .filter?

C'est le comportement de la radio.

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

C'est le 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>

Réponses:

1 pour la réponse № 1
  $(".filter .btn").click(function () {
$("#filter1-none").removeClass("active");
$(this).addClass("active").siblings(".active").removeClass("active");
});

0 pour la réponse № 2

"Je ne suis pas sûr de bien comprendre, mais pour savoir s’il existe un autre élément avec une classe" active ", pourquoi ne pas vérifier si le tableau retourné par le sélecteur contient des éléments?

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");
}

0 pour la réponse № 3

Si je comprends bien, c’est ce que vous voudrez pour votre javascript. Si le bouton sur lequel vous avez cliqué n’est pas #filter1-none enlever la classe active

var $none = $("#filter1-none");
$(".filter .btn").click(function () {
$none.removeClass("active");
$(this).addClass("active").siblings(".active").removeClass("active");
});​