2013-07-12 10 views
72

Jak wykryć, kiedy zdarzenie zostanie wywołane, jeśli obszar tekstowy jest już skupiony?Wykrywanie przez JavaScript, jeśli wejście jest skupione

mam ten skrypt:

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

nie jest duplikatem, ponieważ inne pytanie wymaga rozwiązania jquery. –

+0

Zgadzam się. Zastanawiam się, czy OP był kiedyś oparty na jQuery ... – trysis

+0

@HermannIngjaldsson I tak implicite robi to, ponieważ kod podany używa jQuery (jak to miało miejsce, gdy został pierwotnie opublikowany). Zatem ** jest ** duplikatem. – robinCTS

Odpowiedz

199

z czystym javascript:

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

lub selektor :focus pseudo jQuery.

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

Nie wiem, dlaczego to nie działa ... żadna z nich .. jeśli nie jest skoncentrowana, wystrzeliwuje pierwszy krok ... ale powinien wystrzelić jeszcze krok. – southpaw93

+1

Kliknięcie na textarea zawsze skupi się na tym. – Prinzhorn

+3

Należy pamiętać, że ustawienie fokusu za pomocą "fokusu()" nie będzie działało, jeśli węzeł nie jest dołączony do domingu lub jest ukryty (np. Display: none;) –

0

jQuery za .is(":focus")

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