當(dāng)前位置:首頁(yè) > IT技術(shù) > Web編程 > 正文

vue.js:點(diǎn)擊空白區(qū)域關(guān)閉彈窗
2022-04-29 14:04:24


方式一:

判斷點(diǎn)擊區(qū)域是否包含彈框

<div class="selectedBorder" ref="main">
<div class="bankItem" v-if="bankSwitch == true">
你好我是彈窗里面的內(nèi)容部分
</div>
</div>

監(jiān)聽(tīng)點(diǎn)擊事件

mounted() {
// 監(jiān)聽(tīng)全局點(diǎn)擊事件
document.addEventListener("click", this.bodyCloseMenus);
},

beforeDestroy() {
// 在頁(yè)面注銷前,將點(diǎn)擊事件給移除
document.removeEventListener("click", this.bodyCloseMenus);
},

methods:{
bodyCloseMenus(e) {
let self = this;
if (this.$refs.main && !this.$refs.main.contains(e.target)) {
if (self.bankSwitch == true){
self.bankSwitch = false;
}
}
}

方式二

阻止冒泡事件 ??@click.stop??

<div class="selectedBorder" @click.stop>
<div class="bankItem" v-if="bankSwitch == true">
你好我是彈窗里面的內(nèi)容部分
</div>
</div>
mounted() {
document.addEventListener("click", this.bodyCloseMenus);
},
beforeDestroy() {
document.removeEventListener("click", this.bodyCloseMenus);
},

methods:{
bodyCloseMenus(e) {
let self = this;
if (self.bankSwitch == true){
self.bankSwitch = false;
}
}
}


參考
??vue中實(shí)現(xiàn)點(diǎn)擊空白區(qū)域關(guān)閉彈窗的兩種方法??




本文摘自 :https://blog.51cto.com/u

開(kāi)通會(huì)員,享受整站包年服務(wù)立即開(kāi)通 >