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

相关推荐
小羊没烦恼!5 小时前
Memory 记忆设计讨论:Agent Memory 的数据模型可以怎么设计
java·开发语言·前端·c++·c#
码上成长6 小时前
Mapbox 围栏编辑踩过的几个坑:key 串了、形状炸了、icon 挡住绿点
前端·前端框架
SGAMERrain6 小时前
做了一个免费的在线绘画网格工具 DrawGrid,聊聊一个小工具是怎么越做越完整的
前端
我家猫叫佩奇6 小时前
🦭 厌倦了千篇一律的线性图标?Naive Icons 正式开源
前端·javascript·css
LEE6 小时前
前端转型全栈 00:AI 时代该学哪些,不该学哪些
前端·后端
晚安日记wanna6 小时前
SSR 为什么不适合登录态从水合冲突到缓存串号
前端·react.js·面试
aixingpan6 小时前
aixingpan.cn API开发文档:api_docs_bichart_natalvssolararc2接口指南
前端·php
无限压榨切图仔6 小时前
一个优惠券需求改了三端,我才明白全栈不是多学一门语言
前端·后端
晚安日记wanna7 小时前
批量请求失败只弹一个 Toast面试官想听五层
前端·面试·架构
晚安日记wanna7 小时前
TS const 类型参数一道面试题的四层追问
前端·面试·typescript