document.body.addEventListener 实现点击页面空白部分关闭弹窗

方法一

<div class="order"  @click.stop="ordershow=!ordershow">
点击我显示弹窗
</div>

点击页面空白部分隐藏弹窗

<div class="order-all" v-show="ordershow">
这里是弹窗
</div>


data() {
    return {
      ordershow: false,
      }
 }
 
 watch:{
    ordershow (val) {
      if (val) {
        document.body.addEventListener('click', () => {
          this.ordershow = false
        })
      } else {
        document.body.removeEventListener('click', () => {})
      }
    },
  },

方法二


<div class="item-one"></div>

mounted() {
    window.addEventListener('click', this.handleNoItem)
  },
  beforeDestroy() {
    window.removeEventListener('click', this.handleNoItem)
  },
  methods: {
    //点击其他位置关闭编辑模糊框
    handleNoItem(event) {
      const isOutsidePopup = !event.target.closest('.item-one')  //通过class锁定要关闭的弹窗
      if (isOutsidePopup) {  //我这里是关闭所有的list弹窗,可视情况而关闭单个弹窗
        // 遍历 list数组,关闭所有弹窗
        this.list.forEach((obj) => {
          this.$set(obj, 'select', false)
        })
      }
    },
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值