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

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-23 12:32:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-23 12:32:03       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-23 12:32:03       82 阅读
  4. Python语言-面向对象

    2023-12-23 12:32:03       91 阅读

热门阅读

  1. 登录接口开发 - 登录注册开发入门(3)

    2023-12-23 12:32:03       69 阅读
  2. js判断是否到T+N的时间限制

    2023-12-23 12:32:03       65 阅读
  3. RK3588 CPHY camera调试(LT7911UXC)

    2023-12-23 12:32:03       116 阅读
  4. JWT 单点登录探析:原理、用途与安全实践

    2023-12-23 12:32:03       56 阅读
  5. B树和B+树的区别

    2023-12-23 12:32:03       57 阅读
  6. 11-Kafka

    11-Kafka

    2023-12-23 12:32:03      60 阅读
  7. qt ios 将图片和视频保存到手机相册里

    2023-12-23 12:32:03       56 阅读
  8. vue3项目快速创建

    2023-12-23 12:32:03       63 阅读