Код не работает, потому что (clicked)
всегда будет истинным - для него устанавливается значение true при каждом запуске функции для каждой кнопки.Если вы хотите проверить, активна ли нажатая кнопка, вы можете установить переменную clicked = this.getAttribute('class').includes('active')
.Если кнопка имеет класс active
, значение clicked
будет истинным.
Однако нам даже не нужно проверять, активна ли нажатая кнопка или нет - мы можем просто удалить active
Класс из всех кнопок, а затем установите его в зависимости от того, какой из них только что был нажат с помощью селектора $(this)
, ниже:
$("button").click(function() {
$("button").removeClass("active");
$(this).addClass("active");
});
.featuredBtn.active {
background-color: #bf9471;
color: white;
}
.featuredBtn {
width: 250px;
height: 50px;
color: #8c8c8c;
font-weight: 700;
background-color: #f4efeb;
border: none;
letter-spacing: 2px;
outline: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="row">
<div class="col-lg-12 col-xs-12" style="text-align: center;">
<button type="button" class="featuredBtn active" id="btnOne">BUTTON ONE</button>
<button type="button" class="featuredBtn" id="btnTwo">BUTTON TWO</button>
<button type="button" class="featuredBtn" id="btnThree">BUTTON THREE</button>
</div>
</div>