恪愚 2021-12-15 11:40 采纳率: 20%
浏览 143

vue中在touchend时阻止其他元素click事件

在某一个场景中,我需要这么做:点击某个元素产生弹框,为了不对其它元素产生影响,我在比弹框稍低一些z-index的地方又加了一个浮层。然后为了用户体验,我要在刚触碰到浮层的时候touchstart把那个弹框给取消掉(如果在click事件中操作的话就需要点击,而在start中操作的话本意是不影响滑动事件)。
一开始我是这么做的:在浮层元素的touchstart中将弹框和浮层都取消掉。但这样会导致直接触发了下面元素的click事件,原本应该什么也不发生的结果跳到了其他页面;
后面我又改成在浮层的start事件中将弹框和浮层都取消掉并且添加

e.preventDefault();

事件。但是这样做的结果是“没有滑动事件了”。

于是最后我改成这样:在浮层的start事件中将弹框取消掉,在浮层的end事件中再将浮层取消掉,并且在end事件中添加 preventDefault 事件。
这么做确实将后面其它元素的click事件阻止了,但是会在控制台给出一个报错(虽然也不影响任何逻辑)。但报错终究是会被我司的监控平台捕获到,很尴尬。

img

求各位da lao指点!

  • 写回答

1条回答 默认 最新

  • 你好!机器人 2021-12-15 11:41
    关注
    评论

报告相同问题?

问题事件

  • 创建了问题 12月15日

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大