Come cancellare / rimuovere JavaScript Event Handler?

Dato il seguente frammento HTML:

Devo rimuovere / cancellare il gestore per l’evento onsubmit e registrare il mio utilizzando jQuery o qualsiasi altro aspetto dell’utilizzo di JavaScript.

Per fare questo senza alcuna libreria:

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

Con jQuery

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

E poi procedi per aggiungere il tuo.

Prova questo, questo funziona per me:

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

Vedi questo per maggiori dettagli.

Per jQuery, se si stanno vincolando i gestori di eventi con .live, è ansible utilizzare .die per separare tutte le istanze che sono state associate a .live.

Per jQuery, off() rimuove tutti i gestori di eventi aggiunti da jQuery da esso.

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

Chiamando .off () senza argomenti rimuove tutti i gestori collegati agli elementi.

Se si desidera rimuovere TUTTI event-handlers element and its child-nodes e mantenere solo la HTML structure , possiamo lavorare con clone () jQuery's :

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

Questo in effetti non lascerà alcun event-handlers element o sui suoi child-nodes .

In bocca al lupo…