Ste*_*lan 9 javascript javascript-events
我有一个<div>使用以下代码附加了click事件的元素:
var id = "someId";
var elem = document.getElementById("elemId");
elem.addEventListener("click", function() { someFunction(id); }, false);
Run Code Online (Sandbox Code Playgroud)
稍后我会复制元素并将其添加到其他部分DOM,但需要先删除该click事件
var elem = document.getElementById("elemId");
elem.removeEventListener("click", ???? , false);
Run Code Online (Sandbox Code Playgroud)
我不确定如何引用监听器,到目前为止我没有尝试过从元素中删除事件.
有任何想法吗?
干杯
斯图尔特
将匿名点击处理函数移出addEventListener调用:
var id = "someId";
var elem = document.getElementById("elemId");
var elemEventHandler = function() { someFunction(id); };
elem.addEventListener("click", elemEventHandler , false);
Run Code Online (Sandbox Code Playgroud)
之后你应该能够:
var elem = document.getElementById("elemId");
elem.removeEventListener("click", elemEventHandler , false);
Run Code Online (Sandbox Code Playgroud)
上面的答案是正确的。但是,以防万一,有人想要删除onclick附加到这样的按钮的功能,例如
<button type="button" onclick="submit()" id="tour-edit-save">Save</button>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,要删除onclick附加的功能,就必须删除该属性onclick,这样就可以完美地工作。以下是使用 pure 删除的方法JavaScript
document.getElementById('tour-edit-save').removeAttribute('onclick');
Run Code Online (Sandbox Code Playgroud)
使用jquery
$('#tour-edit-save').removeAttr('onclick');
Run Code Online (Sandbox Code Playgroud)
希望这对正在寻找这个答案的人有所帮助。
| 归档时间: |
|
| 查看次数: |
13940 次 |
| 最近记录: |