element-ui的popover嵌套popover问题(已解决)

近期使用element-ui时发现了个小bug:https://codepen.io/jiangguangyao/pen/KKNLMYG

在popover内嵌套popover,外层使用的是manual方法,内部使用的click方法(click点击除当前节点会关闭当前popover)

在内部popover打开后,点击外部popover内的空白页,关不掉!!!

 

解决方法:(两种)

  1. popover内部嵌套popover的方法,在外层popover的内容上添加click事件(注意是否需要.native),用this.$refs.XXX.doClose()方法关闭,同时触发内部popover的reference,需要添加click事件阻止事件冒泡,两者缺一不可(不阻止事件冒泡,就会造成内部popover打不开--实际上是打开了又关掉了)(初始思路,我也看不懂了...直接看第二种方法)。

  2. 效仿select框,在点击popover弹出内容的区域设置自定义指令(clickoutside),当点击popover外侧时,关掉popover即可

 

各位大佬有更好的解决方案可以提一下,一起交流,总结经验,共同进步!

 

 

---- 2022.8.29 更新 ----

在原有bug的基础上,试着在外面再增加一个click触发的popover,结果发现,两个click激活的popover,会存在同时打开的情况,且点击手动激活、click激活弹出的区域,都不会触发click触发描述的那个,点击除弹窗外的区域都会关闭,这个问题就跟我记录的 select和popover共存时产生的问题 一样,都是popover的click触发所隐藏的问题,解决方案正常就是设置自定义指令v-clickoutside来解决。

 

posted @ 2021-03-17 17:40  程序员笔记--vue  阅读(4181)  评论(0编辑  收藏  举报