怎么在js中通过代码手动隐藏element-ui中的下拉弹窗(dropdown-menu)?官方只提供了通过死板的事件来实现这个功能,当然通过模拟事件是可以解决的但是不太友好。而且当我通过css来使其display:none时,按钮需要两次才能触发dropdown的下拉弹窗。代码如下:
怎么在js中通过代码手动隐藏element-ui中的下拉弹窗(dropdown-menu)?官方只提供了通过死板的事件来实现这个功能,当然通过模拟事件是可以解决的但是不太友好。而且当我通过css来使其display:none时,按钮需要两次才能触发dropdown的下拉弹窗。代码如下:
var evmousedown = document.createEvent('HTMLEvents');
evmousedown.initEvent('mousedown', false, true);
var evmouseup = document.createEvent('HTMLEvents');
evmouseup.initEvent('mouseup', false, true);
document.dispatchEvent(evmousedown)
document.dispatchEvent(evmouseup)
<el-dropdown ref="dropdown">
......
</el-dropdown>
this.$refs.dropdown.visible = false;
亲测有效
源码中有答案https://github.com/ElemeFE/el...
// 组件
<el-dropdown ref="dropdown" ...>...</el-dropdown>
// js
this.$refs.dropdown.hide(); // 隐藏
this.$refs.dropdown.show(); // 显示
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
4 回答4.3k 阅读✓ 已解决
我看它源码,发现了这个东西:
这个东西的作用就是当你点击元素外面的时候会触发的事件。
在组件当中使用,是这样的:
这样的话,就能手动触发你想要做的事件了,当然这个方法因为管理不了dropdown的状态,所以,你可以把dropdown的样式拿过来,做一个简单的封装,就可以了。