vue点击当前盒子以外任意地方隐藏当前盒子

方法一: contains方法 用于判断DOM元素的包含关系;

需要注意的是:它以HTMLElement为参数,且返回布尔值。

复制代码
 document.addEventListener('click', (el) => {
        console.log(this.$refs.content.contains(el.target));
      })
复制代码
<template>
    <button @click.stop='showBox'>点击展示隐藏盒子</button>
    <div ref='box' v-show="flag">要隐藏的盒子</div>
</template>
<script>
    export default {
        data(){
           return{
              flag:false
           }
        },
        mounted() {
            document.addEventListener('click', this.hideBox);
        },
        methods:{
            hideBox(e){
                //判断是否点击的是盒子之外
               if (!this.$refs.box.contains(e.target)) {
                   this.flag = false
               }
            },
            showBox(){
                this.flag = !this.flag
            },
        }
    }
</script>

方法二: 可以给盒子加上阻止冒泡 .stop

相关推荐
阿正的梦工坊3 小时前
JavaScript 微任务与宏任务完全指南
开发语言·javascript·ecmascript
懂懂tty3 小时前
CRA 迁移 Rspack(实战)
前端·架构
小码哥_常4 小时前
Kotlin 助力 Android 启动“大提速”
前端
GreenTea4 小时前
AI 时代,工程师的不可替代性在哪里
前端·人工智能·后端
Jagger_5 小时前
能不能别再弄低代码害人了
前端
朦胧之5 小时前
AI 编程开发思维
前端·后端·ai编程
踩着两条虫5 小时前
VTJ:快速开始
前端·低代码·架构
木斯佳6 小时前
前端八股文面经大全:携程前端一面(2026-04-17)·面经深度解析
前端·状态模式
2301_799073026 小时前
基于 Next.js + 火山引擎 AI 的电商素材智能生成工具实战——字节跳动前端训练营成果
javascript·人工智能·火山引擎
Java后端的Ai之路6 小时前
LangChain ReAct Agent 核心技术问答
前端·react.js·langchain