el-popover嵌套select彈窗點(diǎn)擊實(shí)現(xiàn)自定義關(guān)閉功能
需求
el-popover彈窗內(nèi)嵌套下拉選擇框,點(diǎn)擊el-popover彈出外部區(qū)域需關(guān)閉彈窗,點(diǎn)擊查詢、重置需關(guān)閉彈窗,
實(shí)現(xiàn)
根據(jù)需求要自定義彈窗的關(guān)閉和顯示,首先想到的是visible屬性,在實(shí)現(xiàn)過程中經(jīng)過反復(fù)的測驗(yàn),使用visible屬性點(diǎn)擊彈窗外部區(qū)域無法關(guān)閉彈窗。
轉(zhuǎn)換思路使用el-popover的hide事件來實(shí)現(xiàn)自定義關(guān)閉,可滿足上述需求
<el-popover ref="popoverRef" :offset="20" placement="bottom" trigger="click" > </el-popover>
const popoverRef= ref(); //關(guān)閉彈窗 const closePopover = function () { popoverRef.value.hide(); };
問題描述:在 el-popover 彈出框組件中嵌入 el-select 選擇器組件后,點(diǎn)擊 el-select 選擇器選中選項(xiàng)后,不僅 el-select 選擇器的選項(xiàng)彈框關(guān)閉了,外層 el-popover 組件的彈框也一并關(guān)閉了。
原因:el-popover 彈出框組件的關(guān)閉邏輯是當(dāng)點(diǎn)擊 popover 彈框以外的元素時(shí),彈框就會關(guān)閉。然而 el-select 的 options 彈框默認(rèn)是針對頁面元素進(jìn)行渲染的,而不是針對父元素渲染。也就是說, el-select 的 options 彈框不在 el-popover 彈出框上,點(diǎn)擊options 彈框后會觸發(fā) popover 彈窗框的關(guān)閉條件,因此就會造成選擇 el-select 選擇器的選項(xiàng)后,外層的 el-popover 彈出框也會關(guān)閉。
解決方式:Select 選擇器有一個(gè)屬性 teleported,該屬性可以控制 options 彈框的渲染位置。
<el-popover ref="popoverRef" :offset="20" placement="bottom" trigger="click" > <el-select v-model="value" placeholder="Select" :teleported="false" style="width: 240px"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" /> </el-select> </el-popover>
const value = ref('') const options = [ { value: 'Option1', label: 'Option1', }, { value: 'Option2', label: 'Option2', }, ]
到此這篇關(guān)于el-popover嵌套select彈窗點(diǎn)擊實(shí)現(xiàn)自定義關(guān)閉的文章就介紹到這了,更多相關(guān)el-popover嵌套select彈窗內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于JavaScript實(shí)現(xiàn)TAB標(biāo)簽效果
js實(shí)現(xiàn)tab標(biāo)簽效果,在項(xiàng)目中經(jīng)常用到,今天抽點(diǎn)時(shí)間把我寫的js實(shí)現(xiàn)tab標(biāo)簽效果源碼分享給大家,對js tab標(biāo)簽代碼需要的朋友參考下2016-01-01JavaScript頁面倒計(jì)時(shí)功能完整示例
這篇文章主要介紹了JavaScript頁面倒計(jì)時(shí)功能,結(jié)合完整實(shí)例形式分析了javascript計(jì)時(shí)器、時(shí)間運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2019-05-05如何通過JavaScript、css、H5實(shí)現(xiàn)簡單的tab欄切換和復(fù)用功能
tab切換在項(xiàng)目中也算是常用技術(shù),一般實(shí)現(xiàn)tab切換都用js或者jq實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于如何通過JavaScript、css、H5實(shí)現(xiàn)簡單的tab欄切換和復(fù)用功能的相關(guān)資料,需要的朋友可以參考下2022-11-11