事件与事件之间的两种爱恨情仇

208 阅读1分钟

前言

这两天开发过程中,总遇到事件与事件之间相互牵扯的问题,原本以为之前的.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框是我使用第三方时间选择器的时候带的,代码如下:

就是这样朴实无华简单的一个时间选择器。

解决:后来尝试了好几种方案,找到了一种我觉得很简单就实现的:给外层阻止下冒泡

就加一下这个,然后一切就都正常了,该勾的时候会√,该弹出来时间的时候会弹,俩相互都不影响啦~