如何解决Javascript 焦点顺序 - div 的模糊事件发生在焦点之前?
在这个 codesandbox 应用程序中,我有两个视图
- 显示视图 - 是一个在获得焦点时打开“编辑器视图”的 div。
- 编辑器视图 - 有一个包含 TextField(在打开编辑器视图时获得焦点)和一个按钮的包装 div。单击按钮将带您返回显示视图。我正在将执行顺序打印为控制台日志以跟踪执行顺序。
关于每个视图中事件的顺序,我有几个问题,如下所示:
- 当我单击“显示”视图时,我看到以下顺序 执行。
calling _displayView_displayDiv_OnFocus
calling _editorView_editorDiv_OnBlur
calling _editorView_editorDiv_OnFocus
- 当我在编辑器视图中单击按钮返回到显示视图时,执行顺序如下。
inside _textFieldOnBlur
calling _editorView_editorDiv_OnBlur
calling _editorView_editorDiv_OnFocus
- 再说一次,为什么
_editorView_editorDiv_OnBlur
在_editorView_editorDiv_OnFocus
之前被调用?这就是我感到困惑的原因 - 一个孩子(在这种情况下,TextField 的模糊不应导致_editorView_editorDiv
的blur
被调用,因为blur
事件不会冒泡。所以,_editorView_editorDiv
必须有focus
才能blur
变红,但我没有看到_editorView_editorDiv
在blur
发生之前获得焦点。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。