Ziel einzelne Instanz einer Klasse

8

Ich verwende css, um Inhalte auszublenden, die ich preisgeben möchte, wenn eine Person auf einen Link klickt. Es gibt mehrere Instanzen auf der Seite.

Ich habe ein Beispiel eingerichtet, aber durch Klicken auf einen der Links wird der gesamte Inhalt angezeigt.

Ссылка

Danke

    
Yabsley 01.07.2012, 22:32
quelle

4 Antworten

7

Verwenden Sie .siblings() , um ein Element mit der Klasse details zu finden, das ein Geschwister des übergeordneten Elements der Verknüpfung ist.

%Vor%

DEMO

    
sachleen 01.07.2012, 22:35
quelle
2

Sie könnten zum Stammelement gehen und nach den Details suchen.

%Vor%     
Terry 01.07.2012 22:40
quelle
2

Versuchen Sie es stattdessen:

%Vor%

Demo hier .

Was Ihr aktueller Selektor tut, ist die Auswahl von all -Elementen, die übereinstimmen. Was das obige Snippet macht, ist das Element relativ zu demjenigen auszuwählen, auf das geklickt wurde, indem $(this) verwendet wird, was in diesem Fall das <a> ist, auf das geklickt wurde.

Da <a> innerhalb von <h3> liegt und <div> ein Geschwister von <h3> und nicht von <a> ist, müssen Sie $.parent() , um <h3> auszuwählen, dann verwenden Sie $.next() , um das nächste Element nach dem <h3> zu erhalten, welches der <div> ist, den Sie umschalten möchten.

Der bessere Weg dazu wäre, Ihren Click-Handler stattdessen an den <h3> zu binden. Dies vereinfacht die Selektorverkettung und beseitigt alle Probleme, die Sie möglicherweise mit dem <a> -Tag haben. Das würde besser funktionieren, IMO:

%Vor%     
Bojangles 01.07.2012 22:38
quelle
0

Eine etwas aufwendigere Lösung, aber es bietet die Möglichkeit, andere Beschreibungen zu schließen, wenn Sie eine neue öffnen, die in den aktuellen Antworten fehlt.

%Vor%

Arbeitsbeispiel

Animiertes Beispiel

    
Lix 01.07.2012 22:37
quelle

Tags und Links