如何在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'); }); });