Próbuję stworzyć coś jak akordeon sieciowy.JQuery next() - Pierwsze następne rodzeństwo używając tylko klas
wizualna przykład:
[TITLE DIV 1]
[CONTENT DIV 1]
[TITLE DIV 2]
[CONTENT DIV 2]
[TITLE DIV 3]
[CONTENT DIV 3]
Chcę, aby móc przełączać (funkcja przełączania jQuery()) jest "Content Div" poprzez kliknięcie na odpowiedni tytuł "div".
Próbowałem następujące, ale to nie działa.
HTML:
<div class="topSeparator"></div>
<div class="titleDiv">
<h1>Title 1</h1>
</div>
<div class="bottomSeparator"></div>
<div class="contentDiv"><h2>Content 1</h2></div>
<div class="topSeparator"></div>
<div class="titleDiv">
<h1>Title 2</h1>
</div>
<div class="bottomSeparator"></div>
<div class="contentDiv"><h2>Content 2</h2></div>
JQUERY:
$('.titleDiv').click(function() {
$(this).next('.contentDiv').toggle();
});
Chciałbym opisać mój proces funkcji, takich jak:
- Po kliknięciu na elemencie z klasy o nazwie "titleDiv" zrobić:
1.1. Wybierz ten kliknięty element;
1.1.1. Wybierz następne rodzeństwo tego klikniętego elementu za pomocą klasy o nazwie "contentDiv";
1.1.1.1. Ustaw funkcję toggle() na tym ostatnim elemencie (z klasą o nazwie "contentDiv");
Wygląda na to, że się mylę lub czegoś brakuje.
.
Załączam jquery 1.8.3 (poprawnie).
Działa to, gdy zamiast klas używasz identyfikatorów (staram się ich unikać).
Umieściłem alert wewnątrz funkcji kliknięcia i działa (problem występuje w środku).
Dzięki Anton. Nadal nie rozumiem różnicy między następnym (". ContentDiv") i nextAll (". ContentDiv"), nie powinny dostać się do elementu? (NastępnaWszystko dostanie wszystko) – Edu
następnie pobiera element bezpośrednio po którym w tym przypadku jest bottomSeparator.Użycie nextAll pobiera wszystkie elementy po, ale używając: first pobiera pierwszy element z selektorem (". ContentDiv") – Anton
Nie powinien następować dalej (". ContentDiv") wybrać pierwszy następny element, który jest równy do podanego argumentu (Class contentDiv)? – Edu