首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检测输入元素的焦点丢失,而不是onBlur

检测输入元素的焦点丢失,而不是onBlur
EN

Stack Overflow用户
提问于 2018-01-17 23:09:56
回答 1查看 368关注 0票数 1

我正在用dart实现一个自动完成/组合框。为此,我使用了两个元素,一个<input type="text">和一个<ul>作为建议。每当用户离开输入框时,我都想通过css样式display: none来隐藏。这在对输入元素使用onBlur时起作用。

如果用户试图单击<ul>中的某个项,则输入将失去焦点,并且在运行<li>上的click事件之前,<ul>将被隐藏。

代码语言:javascript
运行
复制
_listElement = new UListElement();
_textElement = new TextInputElement()
  ..onBlur((e) => setDisplayToNone(_listElement)); // hide element

我注意到jQueryUI实现没有这个问题,我也不知道它们是如何检测何时隐藏建议框的。请参阅https://jqueryui.com/autocomplete/

在不将<ul>隐藏在_textElement.onBlur上的情况下,我可以使用什么替代方法来隐藏它?

如果有帮助,这两个元素总是由一个<div>包装的。我正在寻找一个只有飞镖的解决方案,虽然香草-js的答案,我可以重建省道也很感谢。

EN

Stack Overflow用户

回答已采纳

发布于 2018-01-17 23:50:14

请查看事件序列:

  1. input.focus
  2. li.mousedown
  3. input.blur
  4. li.mouseup
  5. li.click

因此,您可以设置一个标志变量,在li.mousedown上打开它,在input.blur上检查它,并决定是否需要隐藏列表,然后在li.click上关闭它。

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48311468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档