jQuery 当另一个 <input> 模糊时检测到 <input> 是焦点

jQuery detect a <input> is focus when blur from another <input>

我的页面上有两个输入元素,我想检测何时 #aa blur,是#bb focused


这是我目前所拥有的:

HTML:

<input type="text" id="aa" name="aa">
<input type="text" id="bb" name="bb">

JQuery:

$('#aa').blur(function () {
    console.log($('#bb').is(':focus'));
});


虽然理论上可行,但输出总是 returns false.

我知道这是因为#aa 的模糊事件总是发生在#bb 的焦点事件之前。

感谢任何帮助

如何使用全局变量,在 #aa 上发生 blur 时更新其值,然后在 #bbfocus 事件中使用它:

var i = 0;

$('#aa').blur(function () {
   i=1;
});

$('input:text').not('#aa').blur(function () {//reset when other textboxes are blurred
   i=0;
});

$('#bb').focus(function () {
   if(i==1){
       //it worked!
   }
});

只需使用 setTimeout() 和 0 作为偏移量来延迟调用到下一个周期。

$('#aa').blur(function () {
  setTimeout(function(){
    console.log($('#bb').is(':focus'));
    },0);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="aa" name="aa">
<input type="text" id="bb" name="bb">