
stopPropagation()并不能阻止,因为它是 capture 而不是 bubble , capture 的顺序是先父后子、自上而下的。

stopPropagation()并不能阻止,因为它是 capture 而不是 bubble , capture 的顺序是先父后子、自上而下的。
|
jmyz0455Apr 1, 2017
1
return false;
但是不建议总是把事件设置在捕获阶段触发,然后还不能移除监听器,思路再理清一下,看能不能有别的做法。 |
|
zhujinliangApr 1, 2017 via iPhone
2
做个 opacity 0.01 的东西罩在页面上面 XD
|
|
bayallenApr 1, 2017
3
不是很明白要什么样的效果,是希望点击后能 emit 个 open 事件,但这个 click 不在其子元素上触发吗?
至于 1L 说的 return false ,其实在 jQuery 里面才是等于 event.preventDefault() & event.stopPropagation(),但在原生的并没有什么作用。不过正常情况下真的极少会更改事件的捕获方式。 Anyway, CSS 有个 pointer-events: none;属性,可以阻止元素响应 click 事件,或许会有用。 |
|
lslqtzApr 2, 2017
6
@param 很好的问题,我找了找没找到方案。
网上说是 js 无法阻止页面关闭。 this.close; function() { [native code] } var close='a'; undefined this.close(); VM30633:2 Uncaught TypeError: this.close is not a function(…)(anonymous function) @ VM30633:2InjectedScript._evaluateOn @ (program):878InjectedScript._evaluateAndWrap @ (program):811InjectedScript.evaluate @ (program):667 this.close; "a" |
|
MinonHeartApr 2, 2017 via iPhone
8
在 close 函数内做判断
|
|
9
@MinonHeart close 函数不是我写的,在一个第三方库里面。最好不用改库,看来唯一的方法就是移除监听器了?
|
|
MinonHeartApr 2, 2017 via iPhone
10
@param 外面再包一层
|
|
11
@MinonHeart document 的外面? document 不是最外了吗?
|
|
MinonHeartApr 2, 2017 via iPhone
12
@param ((((;゚Д゚))))))) 你自己包一层作为 click 事件的函数
|