jQuery启用它的方式如下:
$( "input" ).triggerHandler( "focus" );
在没有jQuery的情况下如何实现相同的目标?
答案 0 :(得分:1)
您在要触发dispatchEvent
的元素上使用focus
。见
文档和示例here。
const event = new FocusEvent('focus', {
view: window,
bubbles: true,
cancelable: true
});
const myInput = document.getElementById('myInput');
myInput.dispatchEvent(event);
#myInput:focus {
background: red;
}
<input id="myInput" type="text" onfocus="console.log('Input focused!');"/>
如您在上面的代码中看到的,console.log
语句是基于input
标记的绑定事件运行的,但是该元素实际上并未聚焦(因为否则输入框将是红色,您可以通过点击尝试)。
答案 1 :(得分:0)
使用getEventListeners(node)
函数
在您的情况下:
console.log(getEventListeners(document.getElementsByTagName('input')[0]));
您将获得所有侦听器,然后可以过滤附加到focus
事件的侦听器