我现在是活跃的开发人员的网站使用了外部加载的脚本。它包含DOM中给定元素上的事件侦听器。以下示例触发了该事件
document.getElementById('my_id').onclick = function() { /*code*/ }
我尝试使用以下示例删除监听器,但无济于事。
document.getElementById('my_id').onclick = ''
document.getElementById('my_id').addEventListener('click', function(e){ /*code*/ })
document.getElementById('my_id').removeEventListener("click")
我无法控制此外部代码,但需要停止其行为。目前我的尝试失败了,我试图找出原因
答案 0 :(得分:0)
将null
或空白函数分配给onclick
const btn = document.querySelector("button");
btn.onclick = function() {
btn.onclick= null;
alert("removed");
}
<button>Click me</button>
这个问题已经回答:
How do you override inline onclick event?
Remove and replace another onclick function in a div through Pure Javascript?
答案 1 :(得分:0)
只需分配一个空函数,如下所示:
document.querySelector('#main').onclick = () => {}
工作版本
document.querySelector('#main').onclick = () => console.log('clicked')
document.querySelector('#remove').onclick = () => document.querySelector('#main').onclick = () => {}
<button id="main">Click me</button>
<button id="remove">Remove the listener</button>