vue如何检测鼠标是不是在 div上

<template>
    <div :class="showFlag ? 'show' : 'hide'" @mouseenter="enter" @mouseleave="leave"></div>
</template>
 leave() {
                setTimeout(() => {
                    if (this.showFlag) {
                        this.showFlag = false
                    }
                }, 2000)
            }

如上。在leave函数上,我想延迟两秒再 处理 showFlag的情况。
有可能,鼠标移出了,在两秒之内再移进来。
我需要在 settimeout再检测鼠标是不是在div上才合理。
问题如何,检测鼠标是不是在div上呢?

阅读 8.9k
2 个回答

用一个标识记录鼠标是不是移进来了

加一个全局变量,mouseIsEnterd,当执行@mouseenter时mouseIsEnterd=true,执行@mouseleave时mouseIsEnterd=false,然后在延迟函数中再加上mouseIsEnterd的判断就好了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题