2015-05-08 54 views
1

我有兩個輸入元素在我的網頁上,我想檢測何時 #aa blur,是#bb focusedjQuery檢測<input>是焦點時,從另一個模糊<input>


這是我到目前爲止有:

HTML:

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

JQuery的:

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


雖然它在理論上,輸出總是返回 false

我知道這是因爲#aa的模糊事件總是發生在#bb的焦點事件之前。

任何幫助表示讚賞

+0

你想#bb被聚焦?或者只是想知道他們是否選擇了#bb? – wrxsti

回答

3

只要使用的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">

+0

輝煌!謝謝。 – Littlee

0

如何使用全局變量,當發生在#aablur更新其值,然後在focus事件#bb使用它:

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! 
    } 
}); 
+0

但是用這種方式,只要「bb」被聚焦,即使「aa」很久以前模糊,它也會被觸發。 –

+0

@HéctorE好的!我想這個更新會解決這個問題。 – renakre

+0

我現在正在嘗試,它更好,但它仍然只能用於輸入。它應該能夠抓住每一個其他的焦點......有沒有任何選擇器可以選擇所有的東西? –

相關問題