el-popover嵌套select彈窗點(diǎn)擊實(shí)現(xiàn)自定義關(guān)閉功能
需求
el-popover彈窗內(nèi)嵌套下拉選擇框,點(diǎn)擊el-popover彈出外部區(qū)域需關(guān)閉彈窗,點(diǎn)擊查詢(xún)、重置需關(guān)閉彈窗,

實(shí)現(xiàn)
根據(jù)需求要自定義彈窗的關(guān)閉和顯示,首先想到的是visible屬性,在實(shí)現(xiàn)過(guò)程中經(jīng)過(guò)反復(fù)的測(cè)驗(yàn),使用visible屬性點(diǎn)擊彈窗外部區(qū)域無(wú)法關(guān)閉彈窗。
轉(zhuǎn)換思路使用el-popover的hide事件來(lái)實(shí)現(xiàn)自定義關(guān)閉,可滿(mǎn)足上述需求
<el-popover ref="popoverRef" :offset="20" placement="bottom" trigger="click" > </el-popover>
const popoverRef= ref();
//關(guān)閉彈窗
const closePopover = function () {
popoverRef.value.hide();
};問(wèn)題描述:在 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í),彈框就會(huì)關(guān)閉。然而 el-select 的 options 彈框默認(rèn)是針對(duì)頁(yè)面元素進(jìn)行渲染的,而不是針對(duì)父元素渲染。也就是說(shuō), el-select 的 options 彈框不在 el-popover 彈出框上,點(diǎn)擊options 彈框后會(huì)觸發(fā) popover 彈窗框的關(guān)閉條件,因此就會(huì)造成選擇 el-select 選擇器的選項(xiàng)后,外層的 el-popover 彈出框也會(huì)關(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
ES6(ECMAScript 6)新特性之模板字符串用法分析
這篇文章主要介紹了ES6(ECMAScript 6)新特性之模板字符串用法,簡(jiǎn)單介紹了ES6模板字符串的概念、功能并結(jié)合實(shí)例形式分析了ES6模板字符串的用法,需要的朋友可以參考下2017-04-04
分享一個(gè)自己寫(xiě)的table表格排序js插件(高效簡(jiǎn)潔)
在前不久做的一個(gè)web項(xiàng)目中,需要實(shí)現(xiàn)js表格排序的效果,當(dāng)時(shí)為了省事,就在網(wǎng)上找了幾個(gè)相關(guān)的js插件2011-10-10
JS實(shí)現(xiàn)加載時(shí)鎖定HTML頁(yè)面元素的方法
這篇文章主要介紹了JS實(shí)現(xiàn)加載時(shí)鎖定HTML頁(yè)面元素的方法,涉及javascript針對(duì)頁(yè)面元素的遍歷與屬性操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-06-06
詳解CocosCreator優(yōu)化之DrawCall
這篇文章主要介紹了CocosCreator中DrawCall的優(yōu)化,想研究游戲性能的同學(xué),一定要看一看2021-04-04
使用postMesssage()實(shí)現(xiàn)iframe跨域頁(yè)面間的信息傳遞
這篇文章主要介紹了使用postMesssage()實(shí)現(xiàn)iframe跨域頁(yè)面間的信息傳遞 的相關(guān)資料,需要的朋友可以參考下2016-03-03

