我正在实现一个AJAX“自动建议”框:用户在输入文本字段中键入字符串,显示带有表格的隐藏div,然后可以单击行或使用上/下箭头滚动列表;同时,焦点仍保持在输入文本字段上。
一切工作都基本正常,但有一个细节我无法实现,这似乎在概念上很困难甚至不可能。我想在用户将光标移动到另一个输入字段或只是单击窗口的空白点时隐藏建议列表。这本身并不难实现,我只需添加一个回调 OnBlur 即可;但这会打破项目 OnClick 的选择,因为在点击之前触发了onblur事件,然后DIV在onclick事件被触发之前消失了...
我考虑在整个窗口上实现一个onclick回调,然后检查单击发生的位置,但这似乎有点笨拙和扭曲。是否有更好的想法?谢谢!
一切工作都基本正常,但有一个细节我无法实现,这似乎在概念上很困难甚至不可能。我想在用户将光标移动到另一个输入字段或只是单击窗口的空白点时隐藏建议列表。这本身并不难实现,我只需添加一个回调 OnBlur 即可;但这会打破项目 OnClick 的选择,因为在点击之前触发了onblur事件,然后DIV在onclick事件被触发之前消失了...
我考虑在整个窗口上实现一个onclick回调,然后检查单击发生的位置,但这似乎有点笨拙和扭曲。是否有更好的想法?谢谢!
setTimeout
。但是这个技巧有一个active
元素的问题。 - Abhishek Kamal