Как повесить два обработчика клика на один элемент, без конфликтов?

Набросал скрипт: https://jsfiddle.net/wp2euLwb/4/
Есть набор кружков, которые являются местами, мы выбираем место, соседние сразу же бронируются тоже (помечается красным).

Вопрос в чем: все это дело работает только на добавление класса, соответственно только на ВЫБОР МЕСТА, у меня же стоит задача иметь возможность отменить место (если кликнули по серому кружку, просто делаем его доступным для выбора.

Мне в голову приходит только повесить еще один обработчик на клик, и если происходит клик по выбранному элементу, удалять у него класс, но дело в том, что первый обработчик тогда вообще не работает.

Как грамотно это реализовать?
  • Вопрос задан
  • 534 просмотра
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Как грамотно это реализовать?
Обработчика достаточно и одного - вам внутри нужно определять тип кружка, по которому кликнули, и исходя из типа запускать ту или иную логику.
Ответ написан
Комментировать
@JuniorNoobie
Сижу в поддержке, пишу мелкие проекты
Пишите один обработчик нажатия, который делает следующее:
- если у нажимаемого элемента (event.target) стоит класс "красный", то ничего не делаем;
- если у нажимаемого элемента нет класса, то помечаем соседние элементы "красными";
- если у нажимаемого элемента стоит класс "серый", то снимаем класс "серый" с этого элемента и снимаем класс "красный" с соседних элементов".

Еще вопрос: а как брать места рядом, если они автоматом убираются?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы