【发布时间】:2021-02-27 17:40:03
【问题描述】:
我有一个带有 onfocus 和 onblur 事件的输入文本框。 文本框下方是一个 div,它被 display: none 隐藏。
如果文本框获得焦点,则应该显示 div,如果模糊,则应该隐藏。这似乎有效。现在,如果我单击 div (或其内容之一)本身,我想让 div 保持可见或对 div 进行任何点击。这行不通。 onBlur 事件可防止 div 上的任何事件。 我已经尝试确定单击了哪个新元素,但找不到任何对我有帮助的属性。相关目标为 NULL。目前,我唯一的解决方案似乎是在除 div 及其子节点之外的每个其他节点上添加 onfocus
除此之外,您还有其他想法吗? 感谢您的帮助。
詹斯
【问题讨论】:
-
请阅读How to Ask和minimal reproducible example,然后相应地编辑您的问题。
-
(我猜测,在将 div 设置回 display:none 之前的短暂超时可能会有所帮助。如果在该时间跨度内发生 div 内的任何点击,那么您必须清除超时。)
-
你可以做的是:点击事件的 div,添加一个类名“active”并在你的模糊事件上添加 if 语句检查 div 是否有“active”类,如果没有显示:none ,如果是,则显示:阻止。如果你愿意,我可以分享一些代码
-
@Elnatanvazana 谢谢你的回答。我不能这样做。我的 onblur 防止了 div 的 onclick。如果我点击其他地方但在 div 上,我希望 div 消失。
标签: javascript onblur onfocus