点透发生的理由: 当手指触摸到屏幕的时候,系统生成两个事件,一个是touch 一个是click,touch先执行,touch执行完成后,A从文档树上面消失了,而且由于移动端click还有延迟200-300ms的关系,当系统要触发click的时候,发现在用户点击的位置上面,目前离用户最近的元素是B,所以就直接把click事件作用在B元素上面了
.
系统提供了先触发的touch事件去取消系统生成的click事件,所以只要在touch事件的某个处理函数中 执行 e.preverDefault即可, 一般我们在touchend中执行
蒙层z-index高于replyDiv 会出现点击穿透
<div class="overlay" v-if="showOverlay" @click.stop.prevent="clickOverLay" >
</div>
<div class="replyDiv" @touchend.stop.prevent="commitReply()" v-if=" replyClass==='replying' && replyInput !== '' && showInput==='replyTopic' " >
<span class="redReply" >评论</span>
</div>