@Evtera

Почему не выполняется проверка if/else вовремя?

Здравствуйте. Есть код, согласно которому, при клике сначала меняется checkbox на true/false, после чего выполняется проверка на длину массива input:checked. В случае, если длина > 0, то вешается класс. Однако, проверка выполняется только на второй клик. В чем проблема и как можно исправить?

const toggleCheckbox = () => {
  document.addEventListener("click", () => {
    let $input = event.target.querySelector("input");
    let $inputCheked = event.target.offsetParent.querySelectorAll("input:checked");
    let $title = event.target.offsetParent.previousElementSibling;

    if (event.target.classList.contains("selectCheckboxes__line")) {
      if ($input.hasAttribute("disabled")) return false;
      $input.checked ? ($input.checked = false) : ($input.checked = true);

      $inputCheked.length ? $title.classList.add("chose") : $title.classList.remove("chose");
    }
  });
};

toggleCheckbox();


  • Вопрос задан
  • 75 просмотров
Пригласить эксперта
Ответы на вопрос 1
WblCHA
@WblCHA
А каким образом вот это:
$input.checked = !$input.checked;
может оказать хоть какое-то влияние на $inputCheked?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Artezio Санкт-Петербург
от 160 000 до 220 000 ₽