如何在IE中同步触发元素事件?

$(function() { $('#btn').click(function() { $('#inp').focus(); console.log('two'); }); $('#inp').focus(function() { console.log('one'); }); }); 
    

如果您在Chrome中运行上述代码段,则输出将为

 one two 

当你在IE中运行时,输出就是

 two one 

如何在IE中实现同步?

解决方案是使用triggerHandler方法。

.triggerHandler()返回它导致执行的最后一个处理程序返回的任何值。 如果没有重新触发处理程序,则返回undefined

console.log('two')仅在焦点事件结束时运行。

 $(function() { $('#btn').click(function() { $('#inp').triggerHandler('focus'); console.log('two'); }); $('#inp').focus(function() { console.log('one'); }); });