Как очистить / удалить обработчик событий JavaScript?

Учитывая следующий fragment HTML:

Мне нужно удалить / очистить обработчик для события 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 .

Удачи…