2012-03-11 79 views
7

我想知道onchange事件處理程序,哪個控件導致更改(或模糊)事件。 我試圖使用jQuery $(":focus")爲目的,但獲取元素,導致在javascript中發生變化事件

$('.some_class').change(function (e) { 
    console.log(e.target); 
    console.log($(':focus').get(0)); // always `undefined`. 
    /* ......... other code......... */ 
}); 
+1

提供整個事件處理程序... – xandercoded 2012-03-11 14:07:44

+0

$元素(」。some_class')。改變(功能(E){ \t \t \t控制檯.LOG(e.target); \t \t \t的console.log($( ':焦點'。)得到(0)); \t \t \t .........其他代碼..... ... \t \t}); – DotNetter 2012-03-11 14:11:46

+0

@DotNetter請將代碼放入您的答案 – Andre 2012-03-11 14:13:25

回答

4

在jQuery中,this指的是與事件處理程序和event.target元素,如果event是參數的事件處理程序的回調將是源事件,例如,如果你點擊了一個子元素並且點擊冒泡了。

焦點事件在blur事件後被觸發,所以會有一段時間沒有元素具有焦點。如果你真的需要這個,你可以設置一個短暫的超時時間,看看另一個input在原始模糊後幾毫秒內是否聚焦。

+0

是的,就是這樣。但問題是'這個詞'指向我的文本框,而不是指向的焦點元素。 '事件'我只是爲了防止在某些情況下。 – DotNetter 2012-03-11 20:02:21

6
$('.some_class').change(function (e) { 
console.log(e.target); 
console.log($(':focus').); // just remove the .get(0) 

}); 刪除獲得(0),就可以得到這是對重點

+0

和我得到什麼?對象jQuery是空的 – DotNetter 2012-03-11 14:43:32

+0

如果元素onblur,你可以得到元素onfocus – Madao 2012-03-11 14:50:15

+0

我無法理解。函數'get'只是返回jQuery集合中的對象。所以,如果collection不是空的,那麼調用get(0)就可以獲得焦點元素。那麼爲什麼你建議刪除它?或者我可能在某個地方弄錯了? – DotNetter 2012-03-11 20:07:52

相關問題