Fra*_*asi 5 ajax autocomplete onblur
我正在实现一个 AJAX“自动建议”框:用户在输入文本字段中键入一个字符串,显示一个带有表格的隐藏 div,然后他/她可以单击一行或使用向上/向下箭头滚动列表; 同时,焦点仍然保持在输入文本字段上。
一切正常,但有一个细节我无法实现,这在概念上似乎很困难甚至不可能。当用户将光标移动到另一个输入字段时,我想隐藏建议列表,或者只是点击窗口的空白点。这本身并不难实现,我只是添加了一个回调OnBlur;但这打破了OnClick项目的选择,因为 onblur 事件在点击之前触发,然后 DIV 在 onclick 事件被触发之前消失......
我想过在整个窗口上实现一个onclick回调,然后检查点击发生的地方,但这似乎有点太尴尬和扭曲了。有人有更好的主意吗?谢谢!
我目前正在尝试解决同样的问题。
部分解决方案:
使用函数在清除自动建议 DIV 之前等待一小会儿
function pause(milliseconds) {
var dt = new Date();
while ((new Date()) - dt <= milliseconds) { }
}
onBlur="pause(500);clearAutosuggestBox()"
Run Code Online (Sandbox Code Playgroud)
然而,这个解决方案并不优雅,并且不能在所有浏览器中工作。
在查看一些流行的自动建议框时,我还没有遇到一个当您单击外部时使自动建议信息消失的框,而是它们通常会超时并消失。
祝你好运。
| 归档时间: |
|
| 查看次数: |
2274 次 |
| 最近记录: |