
chrome 插件里涉及到阻止元素事件的问题,比如:
在插件里监听到了现在鼠标点击了一个 DIV 标签 v2ex
<div id='v2ex'></div> 这个 V2EX 可能有多个 click 事件监听,比如:
document.getElementById('v2ex').addEventListener('click', () => { console.log('click 1') }) document.getElementById('v2ex').addEventListener('click', (e) => { e.stopImmediatePropagation() console.log('click 2') }) document.getElementById('v2ex').addEventListener('click', (e) => { e.stopImmediatePropagation() console.log('click 3') }) 怎么让那些绑定和监听全部不执行呢???
注:试过 preventDefault 、stopImmediatePropagation(只能阻止在这个方法后边绑定的) 都没达到阻止的效果。
1 coolcoffee 2020 年 7 月 13 日 1. 直接 offEventListener("click")把事件都移除。 2. 在上面悬浮一个看不见的同尺寸元素挡着。 |
2 momocraft 2020 年 7 月 13 日 在上一级 capture ? |
3 xiangyuecn 2020 年 7 月 13 日 研究一下 addEventListener 第三个参数 要我搞就暴力解决,干掉原来的 dom,替换成一个新的完全一样的 dom |
4 AlphaTr 2020 年 7 月 13 日 没啥副作用的话,暴力点用 CSS 干掉 `#v2ex {pointer-events: none;}` |
5 VDimos 2020 年 7 月 13 日 via Android clone 一个元素然后 replace 掉 |
6 Rhianu 2020 年 7 月 13 日 <div id='v2ex' style="pointer-events: none"></div> 就可以将该元素所有的事件失效 |
7 christin 2020 年 7 月 13 日 via iPhone |
8 maichael 2020 年 7 月 13 日 重新克隆一个元素好一点。 |
9 zhouyg 2020 年 7 月 13 日 pointer-events: none 这行 css 足矣 |
10 liuhuihao 2020 年 7 月 14 日 pointer-events: none +1 |