Проверьте, есть ли у элемента прослушиватель событий. нет JQuery
Как проверить, есть ли на элементе прослушиватель событий, если я использую встроенную функцию, как в коде ниже. потому что у меня есть функция, которая вызывает функцию и добавляет прослушиватель событий, но это приводит к тому, что прослушиватель событий дублирования заставляет ее запускать функцию дважды. так как я могу проверить это, чтобы я мог предотвратить добавление прослушивателя событий, если он уже существует. Спасибо!:D
for (var a = 0;a<formFieldInput.length;a++) {
if(formFieldInput[a].hasAttribute("name") && formFieldInput[a].attributes.title.value !== "Valid Until") {
formFieldInput[a].addEventListener("click",function(event) {
toggleFieldList(event,"show");
});
}
3 ответа
Для этого нет функции JavaScript. Тем не менее, вы можете установить логическое значение true
когда вы добавляете слушателя, и false
когда вы удалите его. Затем проверьте это логическое значение, прежде чем добавлять дубликат прослушивателя событий.
Возможный дубликат: Как проверить, существует ли динамически подключенный прослушиватель событий или нет?
В эти дни в консоли Chrome Dev Tools вы можете быстро выполнить эту функцию ниже, чтобы показать всех прослушивателей событий, которые были присоединены к элементу.
getEventListeners(document.querySelector('your-element-selector'));
Вам не нужно. Просто положите его туда столько раз, сколько вы хотите и так часто, как вы хотите. MDN объясняет идентичных слушателей событий:
Если несколько идентичных EventListeners зарегистрированы в одной и той же EventTarget с одинаковыми параметрами, дублирующиеся экземпляры отбрасываются. Они не вызывают повторный вызов EventListener, и их не нужно удалять вручную с помощью
removeEventListener
метод.