Como Clear / Remover JavaScript manipulador de eventos?
-
03-07-2019 - |
Pergunta
Dado o seguinte HTML fragmento:
<form id="aspnetForm" onsubmit="alert('On Submit Run!'); return true;">
Eu preciso remover / limpar o manipulador para o evento onsubmit e registrar minha própria usando jQuery ou qualquer outro sabor do uso de JavaScript.
Solução
Para fazer isso sem quaisquer bibliotecas:
document.getElementById("aspnetForm").onsubmit = null;
Outras dicas
Com jQuery
$('#aspnetForm').unbind('submit');
E, em seguida, avançar para a sua própria.
Tente este, este está funcionando para mim:
$('#aspnetForm').removeAttr('onsubmit').submit(function() {
alert("My new submit function justexecuted!");
});
este para obter mais detalhes.
Para jQuery, se você está ligando manipuladores de eventos com .Live, você pode usar .die para desvincular todas as instâncias que foram amarrados com .Live.
Para jQuery, off()
remove todos os manipuladores de eventos adicionados pelo jQuery dele.
$('#aspnetForm').off();
Chamando .off () sem argumentos remove todos os manipuladores anexados aos elementos.
Se você deseja remover ALL event-handlers
na element and its child-nodes
e manter apenas o HTML structure
, podemos trabalhar com jQuery's
clone () :
var original, clone;
//
original = $('#my-div');
clone = original.clone();
//
original.replaceWith(clone);
Esta vontade efetivamente não deixam event-handlers
na element
ou seu child-nodes
.
Boa sorte ...