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

2023-12-22 20:15:28

方法一:? ?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

文章来源:https://blog.csdn.net/m0_70547044/article/details/135157883
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。