Как очистить / Удалить обработчик событий JavaScript?
-
03-07-2019 - |
Вопрос
Приведен следующий HTML-фрагмент:
<form id="aspnetForm" onsubmit="alert('On Submit Run!'); return true;">
Мне нужно удалить / очистить обработчик для события onsubmit и зарегистрировать свой собственный, используя jQuery или любой другой вариант использования JavaScript.
Решение
Чтобы сделать это без каких-либо библиотек:
document.getElementById("aspnetForm").onsubmit = null;
Другие советы
С помощью jQuery
$('#aspnetForm').unbind('submit');
А затем переходите к добавлению своего собственного.
Попробуй это, у меня это работает:
$('#aspnetForm').removeAttr('onsubmit').submit(function() {
alert("My new submit function justexecuted!");
});
Видишь это для получения более подробной информации.
Для jQuery, если вы привязываете обработчики событий к .live, вы можете использовать .die, чтобы отменить привязку всех экземпляров, которые были связаны с .live.
Для jQuery, off()
удаляет из него все обработчики событий, добавленные jQuery.
$('#aspnetForm').off();
Вызов функции .off() без аргументов удаляет все обработчики, прикрепленные к элементам.
Если вы хотите удалить ВСЕ event-handlers
на element and its child-nodes
и сохранять только тот HTML structure
, мы можем работать с jQuery's
клонировать():
var original, clone;
//
original = $('#my-div');
clone = original.clone();
//
original.replaceWith(clone);
Это будет эффективно не оставляйте никаких event-handlers
на element
или его child-nodes
.
Удачи...