前言
这两天开发过程中,总遇到事件与事件之间相互牵扯的问题,原本以为之前的.stop修饰符就能都解决掉,但实际开发中总会遇到奇奇怪怪的情况,下面来记录两个本人在开发中遇到的事件与事件之间的纠缠问题吧~
纠缠一:针对同一个dom元素,既有单击事件,也有双击事件
问题:在触发dblclick事件时,会先触发click事件
解决:
在data中新增一个定时器:
data() {
return {
clickTimer:null,
}
}
单击事件的函数:
handleClick(){
clearTimeout(this.clickTimer)
this.clickTimer = setTimeout(() => {
//这里写你想在该函数中做的事情
},300)
}
双击事件的函数:
handleDoubleClick(){
clearTimeout(this.clickTimer)
//后面接着写你想在该函数汇总做的事情
}
这样我们的问题就解决啦!~
纠缠二: 时间选择器中点击聚焦input框时,影响外层元素的点击事件
单描述的话,有点难理解,附图如下:
问题:在点击input框想让他出来时间选择器的时候,会触发外层的click事件,也就自动勾选了
这个想了一会,没想出来哪里能使用.stop,因为这个input框是我使用第三方时间选择器的时候带的,代码如下:
就是这样朴实无华简单的一个时间选择器。
解决:后来尝试了好几种方案,找到了一种我觉得很简单就实现的:给外层阻止下冒泡
就加一下这个,然后一切就都正常了,该勾的时候会√,该弹出来时间的时候会弹,俩相互都不影响啦~