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

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="btn">
Click
</button>
<input type="text" id="inp">
&#13;
如果您在Chrome中运行上述代码段,那么输出将是
one
two
当你在IE中运行时,输出是
two
one
如何在IE中实现同步?
答案 0 :(得分:1)
解决方案是使用triggerHandler方法。
.triggerHandler()返回最后一个返回的值 处理程序导致执行。如果没有重新触发处理程序,那么 返回undefined
console.log('two')
仅在焦点事件结束时运行。
$(function() {
$('#btn').click(function() {
$('#inp').triggerHandler('focus');
console.log('two');
});
$('#inp').focus(function() {
console.log('one');
});
});