当前位置: 首页 > news >正文

<el-popover>可以展示select change改变值的时候popover 框会自动隐藏

一、问题定位

点击查看详细链接

  1. element-plus 的 popover 组件,依赖 tooltip 组件;
  2. 当 tooltip 的 trigger 的值不是 hover 时,会触发 close 事件;
  3. 下拉框的 click 事件,触发了 tooltip 组件的 close 事件

总结一下,element 组件执行逻辑是:
点击下拉框,会绑定 click 的事件回调函数。
点击下拉选项,会执行 click 的回调函数:lisntener,以及内部的 handler 函数。handler 函数对应的代码在 tooltip 组件中。
执行 handler 时,由于tooltip 的 trigger 不为 hover,所以会执行 close 函数。这就导致了 popover 面板被关闭。

二、解决方案

将 select 下拉框的 DOM 放到 popover 内部,可以通过修改 el-select组件的 teleported 属性为 false 来实现。

三、案例代码

<el-popover placement="bottom" :width="300" trigger="click"><span>hello world</span><el-select v-model="value" :teleported="false"><el-option label="one" value="1"></el-option><el-option label="two" value="2"></el-option></el-select><div><el-button @click="okFn">确定</el-button><el-button @click="cancelFn">取消</el-button></div><template #reference><div><el-button>打开</el-button></div></template>
</el-popover>

四、总结

  1. Vue3的 element-plus 相对于 Vue2 的 element-ui,popover组件的实现方式有较大变化:不使用vue-popper,而是直接用el-tooltip来实现。
  2. element-plus的 popover 组件内部如果使用了el-select组件,需要确保 el-select 的 teleported 值为false,否则会出现展开select下拉框时,popover组件自动收起。
  3. 当遇到和浏览器事件有关的问题时,可以通过浏览器的event listener来打断点,快速找到事件回调。

五、相关问题讨论

详情问题讨论链接

http://www.lryc.cn/news/480726.html

相关文章:

  • SQLI LABS | Less-37 POST-Bypass mysql_real_escape_string
  • 数字后端零基础入门系列 | Innovus零基础LAB学习Day9
  • 深度学习:GLUE(General Language Understanding Evaluation)详解
  • 基于Multisim直流稳压电源电路±9V、±5V(含仿真和报告)
  • Vue Cli的配置中configureWebpack和chainWebpack的主要作用及区别是什么?
  • ubuntu主机搭建sysroot交叉编译环境
  • Python注意力机制Attention下CNN-LSTM-ARIMA混合模型预测中国银行股票价格|附数据代码...
  • 实验三 JDBC数据库操作编程(设计性)
  • 各种环境换源教程
  • Rust项目中的Labels
  • Jmeter的安装和使用
  • 初识Electron 进程通信
  • go语言中的通道(channel)详解
  • 【JS】内置类型的相关问题
  • Mac上无法访问usr/local的文件
  • http 常见状态码
  • 代码训练营 day59|并查集
  • Node.js——fs模块-路径补充说明
  • 华为ENSP--ISIS路由协议
  • 论软件可靠性设计及其应用
  • Android中桌面小部件framework层使用到的设计模式
  • 【JavaEE进阶】HTML
  • ElasticSearch 添加IK分词器
  • 可视化建模与UML《顺序图实验报告》
  • Mac的极速文件搜索工具,高效管理文件
  • 公开仓库改私有再配置公钥后Git拉取仍需要输入用户名的问题
  • 工作流初始错误 泛微提交流程提示_泛微协同办公平台E-cology8.0版本后台维护手册(11)–系统参数设置
  • window下安装rust 及 vscode配置
  • 【数据结构】【线性表】单链表1—概念即创建(附C语言源码)
  • centos7的maven配置