我正在尝试以编程方式设置focusin后检测焦点输出事件。看看示例:(点击蓝色元素集focusin
,点击文档应该触发focusout
)
https://jsfiddle.net/k946vcza/1/
出于某种原因,如果focusin
设置为
var focusin = new Event("focusin");
red.dispatchEvent(focusin);
单击文档时, focusout
不会被触发。如果您首先单击red element
然后单击文档,则会按预期检测到焦点。
我在这里缺少什么?
答案 0 :(得分:0)
focusin
不会触发焦点事件(演示为元素没有突出显示),并且由于focusout
要求元素被聚焦,所以你不会看到它被调用。
如果您执行setTimeout(()=>red.focus(), 0)
而非red.dispatchEvent(focusin)
之类的操作,您将看到预期的行为