【发布时间】:2020-12-06 09:50:08
【问题描述】:
我有什么
上面带有过滤器文本输入的自定义下拉菜单。 DropDown 可以独立于过滤器文本输入打开。
我想要什么
预期的行为是,当过滤器输入失去焦点以及当我在 DropDown 外部用鼠标单击时,下拉菜单关闭,从而使 DropDown 失去焦点。
我尝试了什么
- 绑定到控件中我的根 div 元素上的 blur 事件,该事件根本不会触发。
- 我也找不到任何可以覆盖的内部组件方法。
代码
<div @blur="onRootLostFocus">
...
</div>
...
...
...
onRootLostFocus() {
console.log('LostFocus');
this.deactivateSearchPanel();
this.deactivateSelectionPanel();
}
解决方案
我错过了,div 需要 tabindex="0" 才能获得焦点,这解决了我的问题
【问题讨论】:
-
您能提供一些代码示例吗?
-
@vchan 相应地更新了我的问题
标签: javascript typescript vue.js vue-component