Подтвердить что ты не робот

Проверьте, есть ли на нем элемент прослушивателя событий. нет 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");
                });
            }
4b9b3361

Ответ 1

Для этого нет функции JavaScript. Однако вы можете установить логическое значение true при добавлении слушателя и false при его удалении. Затем сверьте с этим логическим значением, прежде чем потенциально добавить дублирующего прослушивателя событий.

Возможный дубликат: Как проверить, существует ли динамически подключенный прослушиватель событий?

Ответ 2

В настоящее время (2016) в консоли Chrome Dev Tools вы можете быстро выполнить эту функцию ниже, чтобы показать все прослушиватели событий, которые были присоединены к элементу.

getEventListeners(document.querySelector('your-element-selector'));

Ответ 3

Вам не нужно. Просто положите его туда столько раз, сколько вы хотите и так часто, как вы хотите. MDN объясняет идентичных слушателей событий:

Если несколько идентичных EventListeners зарегистрированы в одной и той же EventTarget с одинаковыми параметрами, дублирующиеся экземпляры отбрасываются. Они не вызывают повторного вызова EventListener, и их не нужно удалять вручную с removeEventListener метода removeEventListener.