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
时更新其值,然后在 #bb
的 focus
事件中使用它:
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">
我的页面上有两个输入元素,我想检测何时
#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
时更新其值,然后在 #bb
的 focus
事件中使用它:
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">