Координаты элемента в массиве NumPy

& lt; rant & gt; Это 2016, и стандарт DOM не помог в решении довольно распространенной проблемы, с которой мы сталкиваемся время от времени. & lt; / rant & gt;

Да, единственный способ удалить Ограниченный обработчик событий должен поддерживать ссылку на ограниченную функцию и использовать ее на removeEventListener, как указано в других решениях здесь.

Однако, когда у вас много слушателей, это становится беспорядочным. Ни один из них не придумал простые функции, которые абстрагируют работу по сохранению ссылок на ограниченные функции. Я придумал две функции с именем on () и off () (jQuery вдохновил имена), которые я добавил ко всем элементам HTMLElements, добавив их в прототип. Код здесь . (Работает только в IE 11+, так как использует WeakMap)

Таким образом, используя это, вы можете добавить прослушиватели событий и удалить их так:

this.myButton.on('click', this.clickListener, this);
this.myButton.off('click', this.clickListener, this); //yup, it's removed

Сведения о реализации и принятых решениях много, поэтому я не буду это объяснять:)

Если вам не нравится добавлять функции к родным объектам, вы можете добиться этого, немного изменив мой код. (Но серьезно, стандарт DOM должен был добавить API для решения этой проблемы в первую очередь).

13
задан Georgy 17 July 2019 в 14:55
поделиться