2013-07-12 69 views
72

如果textarea已經聚焦,如何檢測.click事件是否觸發?如果輸入焦點集中,Javascript會檢測

我有這個JavaScript:

$(".status").on("click","textarea",function(){ 
     if ($(this) == "focused") { 
      // fire this step 
     }else{ 
      $(this).focus(); 
      // fire this step 
    } 
+2

它不是重複的,因爲另一個問題特別要求jQuery解決方案。 –

+0

我同意。我想知道OP是否曾經是基於jQuery的... – trysis

+0

@HermannIngjaldsson所以隱含地這樣做,因爲提供的代碼使用jQuery(就像它最初發布時那樣)。因此它**是重複的。 – robinCTS

回答

199

使用純JavaScript:

this === document.activeElement // where 'this' is a dom object 

或jQuery的:focus僞選擇。

$(this).is(':focus'); 
+1

我不知道爲什麼它不工作....沒有一個..如果它沒有集中,它會觸發第一步..但它應該觸發其他步驟.. – southpaw93

+1

單擊文本區將始終關注它。 – Prinzhorn

+3

請注意,如果節點未連接到DOM或隱藏(例如display:none;) –

0

使用jQuery的.is(":focus")

$(".status").on("click","textarea",function(){ 
     if ($(this).is(":focus")) { 
      // fire this step 
     }else{ 
        $(this).focus(); 
      // fire this step 
    }