Aja*_*y G 9 javascript focus eventtrigger
如何使用javascript在文本框上触发焦点事件?
例如在 jQuery 中,我们可以使用$('#textBox').focus().
同样,我们在纯 javascript 中有任何类似的触发器功能吗?
Gre*_*rdt 13
最后我不得不摆弄这个,并想出了一些似乎可以跨浏览器工作的东西:
function triggerFocus(element) {
var eventType = "onfocusin" in element ? "focusin" : "focus",
bubbles = "onfocusin" in element,
event;
if ("createEvent" in document) {
event = document.createEvent("Event");
event.initEvent(eventType, bubbles, true);
}
else if ("Event" in window) {
event = new Event(eventType, { bubbles: bubbles, cancelable: true });
}
element.focus();
element.dispatchEvent(event);
}
Run Code Online (Sandbox Code Playgroud)
考虑到有的浏览器支持focusin事件,有的只支持focus事件。它使用本机focus函数设置焦点,然后根据浏览器支持的情况调度“focusin”事件或“focus”事件。
测试于:
并使用它:
var foo = document.getElementById("foo");
triggerFocus(foo);
Run Code Online (Sandbox Code Playgroud)
这是通用的,应该适用于任何可以接收焦点的元素。
kar*_*rns -1
非常简单:Element.focus()
这不会触发 onfocus 事件如果有要求,请参阅 Greg 的答案。
https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus