恪愚 2021-12-15 11:40 采纳率: 16.7%
浏览 165

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日