Hi im Forum,
nach intensiver Durchforstung von SelfHTML inkl. Forum und WWW bin ich leider noch nicht auf die Lösung gestossen, jetzt frag ich einfach mal an:
Ich habe vier DIVs, davon darf immer nur eins eingeblendet sein. Die Funktion, beim Einblenden eines DIVs die anderen drei auszublenden läuft wunderbar.
Mein Problem ist, dass ich das offene DIV auch wieder ausblenden möchte, wenn ich auf den Button klicke, der dieses DIV geöffnet hat. In dem Fall wären dann alle vier DIVs wieder geschlossen. Ich müsste also irgendwo eine Info bereitstellen, welches DIV gerade geöffnet ist, also einen Parameter an die aufrufende Funktion zurückgeben.
Schaut Euch das mal an bitte. Könnt Ihr mir da helfen? So schwer kann das eigentlich nicht sein. Ich habe zuerst versucht, eine Variable "status" an den Event-Handler onClick zurückzugeben - funktioniert aber leider nicht:
<script type="text/javascript">
<!--
function klappe(id,status) {
var wert;
if ( status == 'zu' ) {
wert = 'block';
status = 'auf';
} else {
wert = 'none';
status = 'zu';
}
document.getElementById(id).style.display = wert;
return status;
}
//--></script>
<a href="#" onclick="klappe('aufklapptext1','zu')">Klicken</a>
<a href="#" onclick="klappe('aufklapptext2','zu')">Klicken</a>
<a href="#" onclick="klappe('aufklapptext3','zu')">Klicken</a>
<a href="#" onclick="klappe('aufklapptext4','zu')">Klicken</a>
Das war mein erster Versuch, anscheinend wird "status" nicht zu onClick durchgereicht <-- Ihr seht schon, bin JavaScript-Anfänger!
Der Schleifendurchlauf zum Schließen war hier eh noch nicht eingebaut - erstmal egal.
Jetzt bin soweit, dass die Schleife läuft, habe die Statusinformation zur Abfrage in eine andere Funktion augelagert, die Abfrage läuft aber nicht.
Hier das Script, ich bin sehr gespannt, welche (Denk-)Fehler ich da habe:
<script type="text/javascript">
<!--
function aufklapp_merker(x,aufgabe) {
var offen;
var check;
var angefragt = x;
if ( aufgabe == "merken" ) {
offen = x;
} else if ( aufgabe == "checken" ) {
if ( angefragt == offen ) {
check = "ja";
} else {
check = "nein";
}
return check;
}
}
function aufklappen(n) {
var klappreihe = new Array("empty","aufklapptext1","aufklapptext2","aufklapptext3","aufklapptext4");
var aktiv = aufklapp_merker(n,"checken");
if ( aktiv == "ja" ) {
document.getElementById(klappreihe[n]).style.display = "none";
} else {
for (var i = 1; i <= klappreihe.length - 1; i++) {
if ( i != n ) {
document.getElementById(klappreihe[i]).style.display = "none";
} else {
document.getElementById(klappreihe[i]).style.display = "block";
aufklapp_merker(klappreihe[i],"merken");
}
}
}
}
//--></script>
<a href="#" onclick="aufklappen('1');return false">Klicken</a>
<a href="#" onclick="aufklappen('2');return false">Klicken</a>
<a href="#" onclick="aufklappen('3');return false">Klicken</a>
<a href="#" onclick="aufklappen('4');return false">Klicken</a>
Um die erste Funktion ganz oben geht's mir wie gesagt nicht, ausser jemand weiss, wie man den "status" an onClick übergeben kann.
Für Hilfe zum zweiten Code wäre ich sehr dankbar!
Anschauen kann man sich's hier.
Vielen Dank für Eure Hilfe,
Konfusion