2016-04-09 16 views
-2

konzentriert Ich versuche, eine Klasse zu meinem p Elemente hinzuzufügen, wenn das Textfeld aktiv istwenn TextArea-

Dies ist, was ich ohne Glück so weit habe.

<textarea class="text"></textarea> 
    <p class="someClass"> 
    <span class="span"> 
     TEXT 
    </span> 
    </p> 

jQuery

$('textarea').focus(
    $(".someClass").addClass("focused"); 
}); 

Das Endergebnis ich zu erreichen bin versucht, wenn das Textfeld

<textarea class="text"></textarea> 
    <p class="someClass focused"> 
    <span class="span"> 
     TEXT 
    </span> 
    </p> 

dies durch Greifen die Setklasse „someclass“ getan werden kann, konzentriert?

Antwort

1

Du es falsch tatsächlich tun. Sie sollten diese Art und Weise tun, indem Sie eine anonyme Funktion zu senden:

$('textarea').focus(function() { 
    $(".someClass").addClass("focused"); 
}); 

Sie das übersehen haben. Ich würde einen besseren Weg sagen, wenn die .someClass auf das Element in Frage kommende, können Sie CSS Geschwister-Selektor +, ohne Verwendung von JavaScript verwenden:

textarea:focus + p { 
 
    background: #99f; 
 
}
<textarea></textarea> 
 
<p>Click on TextArea</p>

+1

ging mit der css-Methode, dachte nicht einmal daran. danke –

+0

Was ist los mit dieser Lösung? ': /' –

+1

nichts überhaupt ... ich benutzte textarea: focus + p { hintergrund: # 99f; } –

0

Sie sollten dem Ereignishandler focus eine anonyme Funktion bereitstellen. Versuchen Sie dies:

Beachten Sie auch, dass Sie dies in CSS allein ohne die Notwendigkeit für JS-Code tun können. Die Verwendung der CSS-Methode hat den zusätzlichen Vorteil, dass die Stile automatisch entfernt werden, wenn der Fokus auf textarea fällt.

textarea:focus + p { 
    /* styles in here which matched the .focused class */ 
} 

Working example

+0

mit dem CSS-Verfahren ging, nur knapp sein Ziel sogar Denke darüber nach. danke –