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



учитывая следующий фрагмент HTML:



<form id="aspnetForm" onsubmit="alert('On Submit Run!'); return true;">


Мне нужно удалить / очистить обработчик для события onsubmit и зарегистрировать свой собственный, используя jQuery или любой другой вкус использования JavaScript.

611   8  

8 ответов:

чтобы сделать это без каких-либо библиотек:

document.getElementById("aspnetForm").onsubmit = null;

С помощью jQuery

$('#aspnetForm').unbind('submit');

а затем продолжайте добавлять свои собственные.

попробуйте это, это работает для меня:

$('#aspnetForm').removeAttr('onsubmit').submit(function() {   
    alert("My new submit function justexecuted!"); 
});

посмотреть этой для более подробной информации.

для jQuery, если вы связываете обработчики событий С.живи, можешь пользоваться .умрите, чтобы развязать все экземпляры, которые были связаны .жить.

для jQuery, off() удаляет из него все обработчики событий, добавленные jQuery.

$('#aspnetForm').off();

призвание .off () без аргументов удаляет все обработчики, прикрепленные к элементам.

если вы хотите удалить всеevent-handlers на element and its child-nodes и сохранить только HTML structure, мы можем работать с jQuery'sclone ():

var original, clone;
//
original = $('#my-div');
clone = original.clone();
//
original.replaceWith(clone);

это эффективно оставить без event-handlers на element или child-nodes.

удачи...

Comments

  1. Игнат
    Игнат 5 лет назад
    Нормально объяснили
    • sergeyzorg
      sergeyzorg 5 лет назад
      Согласен. Все четко и без воды