Jens Ritter: Einblenden / Ausblenden -> erweitern

Hallo Leser,

ich habe das folgende Problem: leider habe ich von JavaScript kaum Ahnung (wollte es zwar immer mal lernen, aber irgendwie hab ich nie Zeit ;-) )

Jedenfalls brauche ich für eine dienstl. Homepage eine Navigation zum Auf- und Zuklappen. Ich hab mir da ein einfach gehaltenes JS besorgt, was auch ganz gut funktioniert. Allerdings würde ich das gerne erweitern.

<script type="text/javascript">
function collapse(input)
{
 elementname = document.getElementById(input);
    if_displayed = elementname.style.display;
        if (if_displayed=='block')
             {
          elementname.style.display='none';
         }
             else
             {
          elementname.style.display='block';
         }
}
</script>

Mit dem Link: <a class="navi" href="javascript:collapse('allgemein');"> wird dann z.B. das div-Element <div id="allgemein" style="display: none;">...</div> eingeblendet und wieder ausgeblendet.

Ich habe nun aber verschiedene Elemente/Inputs, die man alle öffnen und schließen kann. Jetzt hätte ich es aber gern, dass sich immer nur ein Element öffnen kann. Wenn also ein zweites geöffnet wird, soll das bereits offene wieder schließen.
Dazu braucht man sicherlich eine if-Abfrage, die ich aber leider nicht selbst hinbekomm. Es wäre super, wenn mir jemand dabei helfen könnte.

Mit freundlichen Grüßen
Jens

  1. moin Jens :)

    ich habe das folgende Problem: leider habe ich von JavaScript kaum Ahnung (wollte es zwar immer mal lernen, aber irgendwie hab ich nie Zeit ;-) )

    WEnn du dir jetzt nicht die Zeit dafür nimmst, wird dein Unterfangen nicht gelingen. Eine fertige Lösung bekommst du hier nicht.

    Ich habe nun aber verschiedene Elemente/Inputs, die man alle öffnen und schließen kann. Jetzt hätte ich es aber gern, dass sich immer nur ein Element öffnen kann. Wenn also ein zweites geöffnet wird, soll das bereits offene wieder schließen.

    lies dir dazu mal folgenden Thread zum Thema Ebenen ausblenden durch.
    Als Ergänzung lies bitte noch wie man ein Array mit allen Elementen eines Tags erstellt

    Ich nehme an, du hast jetzt Fragen? Frage! ;)

    Dazu braucht man sicherlich eine if-Abfrage, die ich aber leider nicht selbst hinbekomm. Es wäre super, wenn mir jemand dabei helfen könnte.

    if-schleifen sind einfach

    liebe Grüße aus Berlin
    lina-

    --
    Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
    1. Hallo lina.

      Dazu braucht man sicherlich eine if-Abfrage, die ich aber leider nicht selbst hinbekomm. Es wäre super, wenn mir jemand dabei helfen könnte.

      if-schleifen sind einfach

      Wie erstellt man eine if-Schleife?

      Einen schönen Mittwoch noch.

      Gruß, Ashura

      --
      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
      mathbr:del.icio.us/ mathbr:w00t/
      1. moin Ashura :)

        Wie erstellt man eine if-Schleife?

        Ohweia ;) böse Falle! *g*
        Ich höre schon meinen ehemaligen Prof schimpfen ;)

        liebe Grüße aus Berlin
        lina-

        --
        Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
  2. Hi,

    Dazu braucht man sicherlich eine if-Abfrage,

    Wohl noch etwas mehr.

    Hier wird dir aber bei *konkreten* Problemen der Programmierung i.d.R. geholfen.

    Bei diesem "noch gar nichts"-Stand, verweise ich lieber auf meine "nicht mehr einfache"-Funktion Coding: Darstellungswechsel - Un-/Sichtbare Elemente: Ein-/Ausklappen, Verstecken, Transparenz, Farbe. Die macht das automatisch (sofern der letzte Parameter "true" ist).

    Beispiel:
    Bei einem Menü

    ...
     <li id="menuHome"><a href="/">Homepage</a></li>
     <li id="menuDir"><a href="/dir/">Directory</a></li>
    ...

    versteckt ein
     toggle("fold","li","menu","Home",true);
    alle LIs mit der ID menu* - bis auf das LI mit der ID menuHome, das komplementär behandelt, also angezeigt wird.

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
    1. <li id="menuHome"><a href="/">Homepage</a></li>
      toggle("fold","li","menu","Home",true);

      Ups, ganz vergessen, daß ich als Auswahl-Attribut nicht ID vordefiniert habe. Da aber ID in diesem Beispiel verwendet wird, muß es noch übergeben werden:

      toggle("fold","li:id","menu","Home",true);

      Gruß, Cybaer

      --
      Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!