vue如何實(shí)現(xiàn)點(diǎn)擊空白區(qū)域關(guān)閉彈窗
vue實(shí)現(xiàn)點(diǎn)擊空白區(qū)域關(guān)閉彈窗
效果展示

通過(guò)contains判斷點(diǎn)擊區(qū)域是否包含彈框
<template>
<div ref="list">
<span @click="is_list_show=!is_list_show">點(diǎn)擊</span>
<ul class="head-list-select" v-if="is_list_show">
<li>菜單1</li>
<li>菜單2</li>
<li>菜單3</li>
<li>菜單4</li>
<li>菜單5</li>
</ul>
</div>
</template>點(diǎn)擊頁(yè)面判斷
mounted(){
document.addEventListener("click", this.bodyCloseMenus)
},
beforeDestroy() { // 在頁(yè)面注銷前,刪除點(diǎn)擊事件
document.removeEventListener("click", this.bodyCloseMenus);
},
methods: {
bodyCloseMenus(e){
let btnstatus = this.$refs['list'];
if(btnstatus &&!btnstatus.contains(e.target)){
this.is_list_show = false;
}
}
},剛開(kāi)始寫(xiě)的時(shí)候只想到這種方法,后來(lái)百度了一下還有一種通過(guò)阻止冒泡@click.stop來(lái)實(shí)現(xiàn),嘗試了一下可以實(shí)現(xiàn),順便就記錄一下~
<template>
<div ref="list" @click.stop>
<span @click="is_list_show=!is_list_show">點(diǎn)擊</span>
<ul class="head-list-select" v-if="is_list_show">
<li>菜單1</li>
<li>菜單2</li>
<li>菜單3</li>
<li>菜單4</li>
<li>菜單5</li>
</ul>
</div>
</template>mounted(){
document.addEventListener("click", this.bodyCloseMenus)
},
beforeDestroy() {
document.removeEventListener("click", this.bodyCloseMenus);
},
methods: {
bodyCloseMenus(e){
let self = this;
if (self.is_list_show == true){
self.is_list_show = false;
}
}
},總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決Vue2?axios發(fā)請(qǐng)求報(bào)400錯(cuò)誤"Error:?Request?failed?with?s
這篇文章主要給大家介紹了關(guān)于如何解決Vue2?axios發(fā)請(qǐng)求報(bào)400錯(cuò)誤"Error:?Request?failed?with?status?code?400"的相關(guān)資料,在Vue應(yīng)用程序中我們通常會(huì)使用axios作為網(wǎng)絡(luò)請(qǐng)求庫(kù),需要的朋友可以參考下2023-07-07
一步步教你搭建VUE+VScode+elementUI開(kāi)發(fā)環(huán)境
這篇文章主要給大家介紹了關(guān)于搭建VUE+VScode+elementUI開(kāi)發(fā)環(huán)境的相關(guān)資料,近期被配置環(huán)境的事情弄得整個(gè)人都要炸了,現(xiàn)在整理如下,希望有相同需求的朋友可以不用走彎路,需要的朋友可以參考下2023-07-07
解決element-ui庫(kù)的el-row的gutter=10間距失效問(wèn)題
這篇文章主要介紹了解決element-ui庫(kù)的el-row的gutter=10間距失效問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
Vue實(shí)現(xiàn)無(wú)限級(jí)樹(shù)形選擇器
這篇文章主要介紹了Vue實(shí)現(xiàn)無(wú)限級(jí)樹(shù)形選擇器,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-09-09
vue中transition動(dòng)畫(huà)使用(移動(dòng)端頁(yè)面切換左右滑動(dòng)效果)
這篇文章主要介紹了vue中transition動(dòng)畫(huà)使用(移動(dòng)端頁(yè)面切換左右滑動(dòng)效果),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
Vue項(xiàng)目localhost:8080無(wú)法訪問(wèn)此網(wǎng)站,拒絕了我們的連接請(qǐng)求的解決方案
前端頁(yè)面使用的是vue,vue項(xiàng)目啟動(dòng)成功,沒(méi)有任何報(bào)錯(cuò),服務(wù)控制臺(tái)已出現(xiàn)APP訪問(wèn)地址,點(diǎn)擊訪問(wèn)地址出現(xiàn)無(wú)法訪問(wèn)此網(wǎng)站,拒絕了我們的連接請(qǐng)求,所以本文給大家介紹了Vue項(xiàng)目localhost:8080無(wú)法訪問(wèn)此網(wǎng)站,拒絕了我們的連接請(qǐng)求的解決方案,需要的朋友可以參考下2024-12-12
詳解Vue3.0 前的 TypeScript 最佳入門(mén)實(shí)踐
這篇文章主要介紹了詳解Vue3.0 前的 TypeScript 最佳入門(mén)實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06

