Задать вопрос
ddimonn8080
@ddimonn8080

Почему при клике обработчик события срабатывает два раза?

Есть кастомный чекбокс:

Ссылка на Codepen.io

По клику на лейбле обработчик события срабатывает два раза.

В чем проблема?
  • Вопрос задан
  • 566 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Потому что клик на лейбл вызывает клик на инпуте (так лейблы устроены, могут вызывать клик на других элементах), а так как инпут находится внутри лейбла, событие при всплытии заставляет обработчик клика сработать ещё раз.

Какие есть варианты исправить ситуацию:
  1. Вешайте обработчик клика на инпут вместо лейбла
  2. Проверяйте целевой элемент, если не инпут - ничего делать не надо
  3. Обрабатывайте вместо click событие change
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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