从DOM中删除事件监听器

时间:2018-06-22 09:22:30

标签: javascript

有一个网页正在加载我要永久删除的点击事件监听器。我不是在自己设置功能,因为它是由网站加载的。我只需要删除事件监听器即可。

我知道事件和功能。

为什么不删除此事件监听器?

1 个答案:

答案 0 :(得分:0)

如果元素具有onclick属性,则只需删除onclick属性即可。请参见下面的代码:

function myFunction() {
    document.getElementById( 'element' ).removeAttribute( 'onclick' )
}
<a id="element" href="https://stackoverflow.com" onclick="alert( 'Stack Overflow' ); return false">Click here for alert.</a>
<p>Click the button below to remove event listener from above link.</p>
<button onclick="myFunction()">Remove Event Listener</button>

但是,如果元素不具有onclick属性,则必须有权访问click函数并使用removeEventListener()方法。请参见下面的代码段:

document.getElementById( 'element' ).addEventListener( 'click', Zt )

function Zt( e ) {
  e.preventDefault();
  alert( 'Stack Overflow' )
}

document.getElementById( 'button' ).addEventListener( 'click', function() {
  document.getElementById( 'element' ).removeEventListener( 'click', Zt )
} )
<a id="element" href="https://stackoverflow.com">Click here for alert.</a>
<p>Click the button below to remove event listener from above link.</p>
<button id="button">Remove Event Listener</button>