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

相关推荐
moshuying9 小时前
别让AI焦虑,偷走你本该有的底气
前端·人工智能
GIS之路10 小时前
ArcPy,一个基于 Python 的 GIS 开发库简介
前端
可夫小子11 小时前
OpenClaw基础-为什么会有两个端口
前端
喝拿铁写前端12 小时前
Dify 构建 FE 工作流:前端团队可复用 AI 工作流实战
前端·人工智能
喝咖啡的女孩12 小时前
React 合成事件系统
前端
从文处安13 小时前
「九九八十一难」组合式函数到底有什么用?
前端·vue.js
前端Hardy13 小时前
面试官:JS数组的常用方法有哪些?这篇总结让你面试稳了!
javascript·面试
用户59625857360613 小时前
戴上AI眼镜逛花市——感受不一样的体验
前端
yuki_uix13 小时前
Props、Context、EventBus、状态管理:组件通信方案选择指南
前端·javascript·react.js
老板我改不动了13 小时前
前端面试复习指南【代码演示多多版】之——HTML
前端