详细问题描述
需要动态判断是否阻止事件冒泡,不能使用stop修饰符,用e.stopPropagation()无效
重现步骤
touchmove1(e){
console.log(e);
},
touchmove2(e){
e.stopPropagation();
}
需要动态判断是否阻止事件冒泡,不能使用stop修饰符,用e.stopPropagation()无效
touchmove1(e){
console.log(e);
},
touchmove2(e){
e.stopPropagation();
}
4 个回复
1***@qq.com - 划船没桨全靠浪
是的,我也碰到了。 .stop是可以的,但是自己写e.stopPropagation()就不起作用
DCloud_UNI_GSQ
只支持使用修饰符,不支持使用stopPropagation,因为这里的event对象并非浏览器的evnet对象,其本来没有stopPropagation方法,文档中也从未提及支持stopPropagation方法,实现中有stopPropagation方法是为了避免开发者使用引用的第三方代码使用了stopPropagation后报错。
DCloud_UNI_GSQ
不能动态判断,逻辑层和视图层是分离的,异步通讯。
3***@qq.com
微信小程序可以通过 catch:touchmove="{{isStop?'touchMove':''}}"为空时不阻止冒泡,uniapp无法做到;有替代方案吗?
2020-05-28 19:22
DCloud_UNI_GSQ
回复 3***@qq.com: 比如使用v-if写两个标签
2020-06-01 15:04
1***@qq.com
回复 DCloud_UNI_GSQ: 那在<move-view>里的拖拽功能,和iOS下的上下滚动和上拉下拉回弹冲突了怎么办?这个不阻止冒泡就没法正常工作了,用v-if写两个标签根本不适用。
2020-07-20 20:02
1***@qq.com
回复 DCloud_UNI_GSQ: 而且不能用.stop阻止,在不拖拽的时候还需要正常上下滚动的,longPress事件就可以拖拽了。
2020-07-20 20:03
DCloud_UNI_GSQ
回复 1***@qq.com: 滚动属于默认行为和事件冒泡不同,另外你说的是movable-view组件吗?movable-view是能阻止默认的滚动行为的
2020-07-22 19:43
w***@126.com
回复 DCloud_UNI_GSQ: 用v-if不会导致性能低下吗?页面中有大量的逻辑和数据
2021-10-06 08:31
l***@163.com
v-if 或 插节点