方法一
<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')
if (isOutsidePopup) {
this.list.forEach((obj) => {
this.$set(obj, 'select', false)
})
}
},
}