如何清除/删除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绑定的所有实例。
如果您要删除元素上的 ALL
和保留只有事件处理程序
及其子节点 HTML结构
,我们可以使用 jQuery的
克隆():
var original, clone;
//
original = $('#my-div');
clone = original.clone();
//
original.replaceWith(clone);
这将有效地在元素
或其子节点
上不留事件处理程序
。
不隶属于 StackOverflow