我正在使用外部第三方脚本,它将事件处理程序(例如onclick
)绑定到HTML元素。在我的脚本中,我想控制它是否触发,具体取决于我的事件处理程序中相同元素的条件。我试过event.stopImmediatePropagation()
,但没有奏效。我如何使用vanilla JS来做到这一点?如何有条件地阻止与香草JS相同的元素的事件处理程序?
<script> //third-party script, cannot edit
document.getElementById('test').addEventListener('click', function (e) {
alert('clicked');
});
</script>
<script> //my script, can edit
document.getElementById('test').addEventListener('click', function (e) {
if (document.getElementById('block').checked) {
//block click event from third-party script
}
});
</script>
在上面的代码,alert('clicked')
仅仅是一个例子。事实上,有很多复杂的逻辑我不能粘贴到我的事件处理程序中。
有没有办法以编程方式删除匿名事件侦听器(你有你的情况)。 – mehulmpt
除非明显你重新创建元素 – mehulmpt
@MehulMohan一定会有办法! – niutech