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)過(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)閉,可滿足上述需求
<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)文章
基于JavaScript實(shí)現(xiàn)TAB標(biāo)簽效果
js實(shí)現(xiàn)tab標(biāo)簽效果,在項(xiàng)目中經(jīng)常用到,今天抽點(diǎn)時(shí)間把我寫(xiě)的js實(shí)現(xiàn)tab標(biāo)簽效果源碼分享給大家,對(duì)js tab標(biāo)簽代碼需要的朋友參考下2016-01-01js實(shí)現(xiàn)動(dòng)態(tài)時(shí)鐘
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)動(dòng)態(tài)時(shí)鐘,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03JavaScript頁(yè)面倒計(jì)時(shí)功能完整示例
這篇文章主要介紹了JavaScript頁(yè)面倒計(jì)時(shí)功能,結(jié)合完整實(shí)例形式分析了javascript計(jì)時(shí)器、時(shí)間運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2019-05-05JavaScript常見(jiàn)的五種數(shù)組去重的方式
本文主要JavaScript常見(jiàn)的五種數(shù)組去重的方式進(jìn)行一一思路分析實(shí)例介紹,易于理解與學(xué)習(xí),具有很好的參考價(jià)值,需要的朋友一起來(lái)看下吧2016-12-12JS對(duì)img進(jìn)行操作(換圖片/切圖/輪換/停止)
JS對(duì)img進(jìn)行操作包括:換圖片/切圖/輪換/停止輪換等等,在本文將逐一實(shí)現(xiàn),感興趣的朋友可以參考下哈,希望對(duì)你學(xué)習(xí)js知識(shí)有所幫助2013-04-04Python執(zhí)行js字符串常見(jiàn)方法示例
這篇文章主要為大家介紹了Python執(zhí)行js字符串常見(jiàn)方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04如何通過(guò)JavaScript、css、H5實(shí)現(xiàn)簡(jiǎn)單的tab欄切換和復(fù)用功能
tab切換在項(xiàng)目中也算是常用技術(shù),一般實(shí)現(xiàn)tab切換都用js或者jq實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于如何通過(guò)JavaScript、css、H5實(shí)現(xiàn)簡(jiǎn)單的tab欄切換和復(fù)用功能的相關(guān)資料,需要的朋友可以參考下2022-11-11