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

相关推荐
醉城夜风~10 分钟前
CSS盒模型(Box Model)
前端·css
雪隐44 分钟前
个人电脑玩AI-15让5060 Ti给你打工——MiniMax H3 本地部署实录:一个自带录音棚的视频模型,和它的 NVFP4 瘦身奇遇
前端·人工智能·后端
GuWenyue1 小时前
不用第三方SDK!Vue3原生Fetch实现DeepSeek流式输出,90%前端都会踩的分片解析坑一次性解决
前端·人工智能·llm
独隅1 小时前
前端离线暂停更新策略:Service Worker 与 PWA 实战指南
前端
不如摸鱼去2 小时前
Wot UI 2.3.0 发布:二维码组件来了,Open Wot 与 wot-starter 同步更新
前端·ui·微信小程序·前端框架·uni-app
Cloud_bread2 小时前
从ReAct到自主闭环:Agentic Coding核心执行引擎的技术演进
前端·react.js·前端框架
cidy_982 小时前
OptMem 使用教程
前端
满栀5852 小时前
原生JS + ECharts 多图表可视化实战:从业务实现到工程化优化
开发语言·javascript·echarts
杉氧2 小时前
用 Compose 挑战交互与动效天花板:ComposeCraftLab 开源实验室全解析
android·前端·kotlin
Canace3 小时前
AI 生成到 90% 突然断了:你的解决方案是?
前端·人工智能