У меня есть ряд узлов, в которые я хочу добавить обработчик кликов, узлы будут переключаться на действие, один раз щелкнуть и что-то установить, снова щелкнуть и очистить.jQuery Как добавить обработчик в класс, но только если он еще не установлен?
Проблема заключается в том, что один и тот же обработчик устанавливается несколько раз, поэтому один клик приводит к вызовам обработчика.
Как проверить, установлен ли обработчик для класса, а затем установить только в том случае, если он еще не установлен?
Я знаю, что к этому уже есть похожие сообщения, однако, прочитав их, я не смог найти тот, который решает мою проблему, когда я устанавливаю обработчик для класса.
[Edit], мой код:
//Need to detect is handler has already been installed before adding the handler below:
$('.btnExpCol').click(function() {
//Do something when any element with this class is clicked
});
Много замечаний основаны вокруг «ид», который, если вы перечитайте мой пост, я использую селектор «класс», однако проблема была решена, и решение работает хорошо.
[Новый код, который сейчас работает]:
$('.btnExpCol').off("click").on("click", function() {
//Do something when any element the has this class is clicked
});
многочисленные способы подходите к этому. Необходимо больше контекста. Предоставить [mcve] – charlietfl
Редактировать недостаточно подробно. Являются ли 2 обработчика одинаковыми? – charlietfl
@charlietfl, тот же код вызывается более одного раза. – SPlatten