Проверьте, есть ли на нем элемент прослушивателя событий. нет 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");
});
}
Ответы
Ответ 1
Для этого нет функции JavaScript. Однако вы можете установить логическое значение true
при добавлении слушателя и false
при его удалении. Затем сверьте с этим логическим значением, прежде чем потенциально добавить дублирующего прослушивателя событий.
Возможный дубликат: Как проверить, существует ли динамически подключенный прослушиватель событий?
Ответ 2
В настоящее время (2016) в консоли Chrome Dev Tools вы можете быстро выполнить эту функцию ниже, чтобы показать все прослушиватели событий, которые были присоединены к элементу.
getEventListeners(document.querySelector('your-element-selector'));
Ответ 3
Вам не нужно. Просто положите его туда столько раз, сколько вы хотите и так часто, как вы хотите. MDN объясняет идентичных слушателей событий:
Если несколько идентичных EventListeners зарегистрированы в одной и той же EventTarget с одинаковыми параметрами, дублирующиеся экземпляры отбрасываются. Они не вызывают повторного вызова EventListener, и их не нужно удалять вручную с removeEventListener
метода removeEventListener
.