element-ui的dropdown组件使用

业务背景

开发一个类似下拉框的弹出菜单,内容需要可编辑,可输入 (就是可以自定义了);

Dropdown

整个项目是基于Vue开发的,引用了element-ui 库,所以直接使用了el-dropdown 组件来实现该功能
弹出的下拉菜单大概就长下面这样,上面是一个模拟的select,点击select弹出。

问题

因为菜单是多选的,肯定不能点击el-dropdown-item就去关闭el-dropdown,但页面上其他区域大多都给阻止元素冒泡了,所以插件本身的监听是否点击在el-dropdown上的事件就无效了

那怎么才能够使用代码关闭el-dropdown呢?

解决方案

看了好久的 element dropdown api,提供的参数都没有控制el-dropdown显隐的。
然后看 element dropdown github源代码发现这个变量就是控制当前el-dropdown显隐

然后解决方案就有了

<el-dropdown :hide-on-click="false" ref="dropdown">
    ......    
</el-dropdown>
复制代码

在自己代码的事件控制中调用,就可以实现隐藏功能了

this.$refs.dropdown.visible = false;
复制代码

想了解 vue refs 可以点击这里,多多了解Vue各种特性和开源组件的源码会对我们日常开发有很大的帮助,之前还想要是el-dropdown实现不了就自己写一个这种组件呢 (┬_┬)

转载于:https://juejin.im/post/5b98b21ef265da0ae4726dfd

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值