Ich habe eine UL-Liste erstellt, jede LI hat zwei DIVs - eine sichtbare Fragen-Registerkarte und eine versteckte Antwort-Registerkarte. Es gibt eine Schaltfläche auf der rechten Seite der Registerkarten (Frage-Registerkarte hat SlideDown-Schaltfläche, Antwort-Registerkarte hat die Schaltfläche "SlideUp"). Aber sobald ich auf diese Schaltflächen klicke, werden alle DIVs in der gesamten UL-Liste angezeigt. Wie kann ich nur den angeklickten Inhalt anzeigen und die restlichen DIVs verbergen?JQuery Slide nach oben/nach oben - Zeigt nur ein Div aus demselben Klassennamen an
HTML sieht wie folgt:
<ul>
<li>
<div class="questionTab" id="firstTab">What is the natural color for Dory?
<span class="slideDownButton" style="background-color: red">SLIDEDOWN</span>
</div>
<div class="answerTab">Answer: It's blue.
<span class="slideUpButton" style="background-color: red">SLIDEUP</span>
</div>
</li>
</ul>
für diesen Beitrag, ich allgemeine Layout wie Polsterungen, Ränder, Farben usw.
.answerTab {
display: none;
}
Und JQuery-Skript folgt aussieht wie die ausgeschlossen wird derzeit offen Alle Registerkarten in UL:
$(document).ready(function(){
$(".slideDownButton").click(function(){
$(".answerTab").slideDown("slow");
});
});
$(document).ready(function(){
$(".slideUpButton").click(function(){
$(".answerTab").slideUp("slow");
});
});
Allerdings, basierend auf einigen Untersuchungen hatten einige Leute s Ich habe versucht, folgende Änderungen vorzunehmen, um nur das angeklickte DIV anzuzeigen, so dass es schließlich so aussieht, aber es funktioniert nicht.
$(document).ready(function(){
$(".slideDownButton").click(function(){
$(this).parent("li").find(".answerTab").slideDown("slow");
});
});
$(document).ready(function(){
$(".slideUpButton").click(function(){
$(this).parent("li").find(".answerTab").slideUp("slow");
});
});
Also ich frage Ihre Hilfe und Beratung. Wie kann ich den folgenden Code verbessern und was mache ich falsch? Alle Hilfe wird geschätzt.
'jQuery (Funktion ($) {' ist ein besserer * DOM-fähiger * Wrapper –
Mein Gott, ich habe einen Fehler gemacht, als ich versuchte, den ersten Code zu zeigen, der funktionierte, aber einen Fehler machte. Es sollte tatsächlich ein Punkt sein. Danke, dass du es aufgezeigt hast. Aber wie kann ich nur einen DIV zeigen und die restlichen verstecken? – rrrrrauno
Dies zeigt eigentlich nur einen 'div' nach dem anderen, indem der' div' Klassenname 'answerTab' angezeigt und versteckt wird, dh es gibt 2' div's ('questionTab' und' answerTab') - dieser Code zeigt und verbirgt den '' antwortTab' 'div'. Möchten Sie die Listenelemente ein- und ausblenden? Dies ist auch möglich. –