Я не знаю одного, и поиск в Google не принес каких-либо очевидных результатов. Один простой, запутано решение создать функцию, что циклы через каждое событие и устанавливает его в null
, такие как
function removeEvents(obj)
{
obj.onblur = null;
obj.onchange = null;
obj.onclick = null;
// ...
}
вызвать эту функцию следующим образом: removeEvents(myElem)
. Полный список обработчиков событий JavaScript можно найти по адресу http://www.elated.com/articles/events-and-event-handlers/.
Несомненно, есть более элегантный способ написать эту функцию, но я не знаю, есть ли более элегантный способ решить эту проблему. Было бы прекрасно, если бы кто-то знал об этом. Если вы привязываете события через библиотеку JavaScript, например jQuery, могут быть другие, лучшие варианты.
Как связаны события в первую очередь (например, 'onclick = ...', 'addEventListener', библиотека и т. Д.)? –
addEventListener() используется. Он используется для myElem и для некоторых произвольных детей в зависимости от условной логики, вызванной пользователем. – Tower
Я так понимаю, вам тогда не нужен IE (который использует 'attachEvent')? Если это так, «скопируйте» свой элемент с помощью «cloneNode (true)», а события magic-boom-presto, addEventListener не будут скопированы. Это в спецификации: http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-EventListener –