在某一个场景中,我需要这么做:点击某个元素产生弹框,为了不对其它元素产生影响,我在比弹框稍低一些z-index
的地方又加了一个浮层。然后为了用户体验,我要在刚触碰到浮层的时候touchstart
把那个弹框给取消掉(如果在click事件中操作的话就需要点击,而在start中操作的话本意是不影响滑动事件)。
一开始我是这么做的:在浮层元素的touchstart中将弹框和浮层都取消掉。但这样会导致直接触发了下面元素的click事件,原本应该什么也不发生的结果跳到了其他页面;
后面我又改成在浮层的start事件中将弹框和浮层都取消掉并且添加
e.preventDefault();
事件。但是这样做的结果是“没有滑动事件了”。
于是最后我改成这样:在浮层的start事件中将弹框取消掉,在浮层的end事件中再将浮层取消掉,并且在end事件中添加 preventDefault 事件。
这么做确实将后面其它元素的click事件阻止了,但是会在控制台给出一个报错(虽然也不影响任何逻辑)。但报错终究是会被我司的监控平台捕获到,很尴尬。
求各位da lao指点!