@r_g_b_a

Как сократить код?

Подскажите, как оптимизировать код, чтобы не создавать для каждой кнопки свой обработчик?
Демо
  • Вопрос задан
  • 135 просмотров
Решения вопроса 1
@nvdfxx
Senior Pomidor developer
(function() {
  const initialStates = {
    '.button_1': false,
    '.button_2': true,
    '.button_3': false
  }
  
  $('.button').on('click', function() {
    $(this).toggleClass('button_active')
  })
  
  for(key in initialStates) {
    if(initialStates[key]) $(key).click()
  }
  
})();
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Higrok
Например, вот так:

var button1Active = false;
  var button2Active = true;
  var button3Active = false;

function buttonActive(btn_name, btn_active) {
   $(btn_name).on('click', function(){
    btn_active = !btn_active;
    $(this).toggleClass('button_active', button1Active);
  }).toggleClass('button_active', button1Active);
}

buttonActive('.button_1', button1Active);
buttonActive('.button_2', button2Active);
buttonActive('.button_3', button3Active);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы