我正在用dart实现一个自动完成/组合框。为此,我使用了两个元素,一个<input type="text">和一个<ul>作为建议。每当用户离开输入框时,我都想通过css样式display: none来隐藏。这在对输入元素使用onBlur时起作用。
如果用户试图单击<ul>中的某个项,则输入将失去焦点,并且在运行<li>上的click事件之前,<ul>将被隐藏。
_listElement = new UListElement();
_textElement = new TextInputElement()
..onBlur((e) => setDisplayToNone(_listElement)); // hide element我注意到jQueryUI实现没有这个问题,我也不知道它们是如何检测何时隐藏建议框的。请参阅https://jqueryui.com/autocomplete/
在不将<ul>隐藏在_textElement.onBlur上的情况下,我可以使用什么替代方法来隐藏它?
如果有帮助,这两个元素总是由一个<div>包装的。我正在寻找一个只有飞镖的解决方案,虽然香草-js的答案,我可以重建省道也很感谢。
发布于 2018-01-17 23:50:14
请查看事件序列:
因此,您可以设置一个标志变量,在li.mousedown上打开它,在input.blur上检查它,并决定是否需要隐藏列表,然后在li.click上关闭它。
https://stackoverflow.com/questions/48311468
复制相似问题