schaich: visibility = "collapse";

Hey

ich hab auf meiner Seite eine einmal verschachtelte Liste. Beim Anklicken eines Elementes soll jetzt die "innere" Liste den PLatz freigeben den sie normlerweise braucht.

Ich hab mir gedacht ich mach das so:

<ul>
  <li onclick="hide()"> text </li>
  <li onclick="show()"> text </li>
    <ul id="innen">
       <li> innen </li>
       <li> innen </li>
    </ul>
  <li onclick="hide()"> text </li>
  <li onclick="hide()"> text </li>
</ul>

<script type="text/javascript">

function show(){
  if (document.getElementById)
    document.getElementById("subsection").style.visibility = "visible";
}

function hide(){
  if (document.getElementById)
    document.getElementById("subsection").style.visibility = "collapse";
}

</script>

Das Problem ist nur das zwar nichts mehr angezeigt wird aber der Platz nicht von den Listenelementen darunter eingenommen wird.

Kann mir einer sagen was ich falsch gemacht habe?

MfG Schaich

  1. Kann mir einer sagen was ich falsch gemacht habe?

    du suchst vermutlich display: none; und display: block; bzw display: list-item;

    1. Kann mir einer sagen was ich falsch gemacht habe?

      du suchst vermutlich display: none; und display: block; bzw display: list-item;

      Ah ja...
      Danke, hab überlesen, dass "collapse" nur für Tabellenzeilen und -spalten wirkt.

      MfG Schaich

      1. Das "Problem" hab ich jetzt gelöst, aber ich hab ein neues:

        Ich habe mehrere <span>'s in einem div-container.
        Jetzt möchte ich ,dass bei einem Klick auf den richtigen Link das angezeigte span ausgeblendet wird und das entsprechende andere eingeblendet (am selben ort).

        Das klappt auch eigentlich nur leider verschwindet nicht nur der span sondern auch die navi ins Nirvana...

        der aufbau is so ähnlich:

        <div>
          <span id="1"></span>
          <span id="2"></span>
          <span id="3"></span>
        </div>

        function eins(){
          if (document.getElementById){
            document.getElementById("2").style.display = "none";
            document.getElementById("3").style.display = "none";
            document.getElementById("1").style.display = "block";
            }
        }

        entprechende funktionen hab ich dann natürlich auch für die anderen beiden geschrieben.

        MfG Schaich

        1. Yerf!

          function eins(){
            if (document.getElementById){
              document.getElementById("2").style.display = "none";
              document.getElementById("3").style.display = "none";
              document.getElementById("1").style.display = "block";
              }
          }

          a) IDs dürfen nicht mit einer Ziffer beginnen.

          b) der Default-Wert für Display ist bei einem SPAN "inline"

          Gruß,

          Harlequin

          --
          <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
          1. a) IDs dürfen nicht mit einer Ziffer beginnen.

            b) der Default-Wert für Display ist bei einem SPAN "inline"

            Das mit den ID's hab ich nur hier im Forum geschrieben mein Fehler...
            den default wert hab ich geändert ohne erfolg gibt es vll noch was anderes was ich übershene hab??

            MfG Schaich

            1. Yerf!

              den default wert hab ich geändert ohne erfolg gibt es vll noch was anderes was ich übershene hab??

              Durchaus möglich... kansst du das mal online stellen und hier verlinken?

              Gruß,

              Harlequin

              --
              <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
              1. Durchaus möglich... kansst du das mal online stellen und hier verlinken?

                Nicht mehr nötig hab den Fehler finden können.
                Aber ich hab noch ein dadurch verursachtes Problem mit einer switch-verzweigung:

                ich habe eine
                   function hide(pvalue){

                switch (pvalue) {
                         case "1":
                           home();
                           break;
                         case "2":
                           artist_contact();
                           break;
                         case "3":
                           links2();
                           break;
                       }
                   }

                die wird so aufgerufen :

                <li onclick="hide(1)">eins</li>

                <li onclick="hide(2)">zwei</li>

                <li onclick="hide(3)">drei</li>

                Warum wird die switch-Verzweigung völlig ignoriert?

                MfG Schaich

                1. Yerf!

                  Warum wird die switch-Verzweigung völlig ignoriert?

                  Vermutlich, weil du Strings mit Zahlen vergleichst. Schreib entweder beim case die Zahlen ohne die Anführungszeichen oder beim Funktionsaufruf die Zahl ebenfalls mit.

                  Gruß,

                  Harlequin

                  --
                  <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
                  1. Vermutlich, weil du Strings mit Zahlen vergleichst. Schreib entweder beim case die Zahlen ohne die Anführungszeichen oder beim Funktionsaufruf die Zahl ebenfalls mit.

                    Jaaaaaa danke.
                    Jetzt klappt alles wie geschmiert.

                    MfG Schaich

        2. Hi,

          entprechende funktionen hab ich dann natürlich auch für die anderen beiden geschrieben.

          Dann beschaeftige dich mal damit, wie man *sinnvolle* Funktionen schreibt.

          (Stichwort: Parametrisierung)

          MfG ChrisB

          --
          "The Internet: Technological marvel of marvels - but if you don't know *what* you're lookin' for on the Internet, it is nothing but a time-sucking vortex from hell."
        3. Mahlzeit Schaich,

          entprechende funktionen hab ich dann natürlich auch für die anderen beiden geschrieben.

          Hätte ich ja nicht gemacht ... ich hätte genau genommen nur eine Funktion für alle dieser für mich eher nach einer in einer Liste enthaltenen Punkte aussehenden Dinger geschrieben.

          MfG,
          EKKi

          --
          sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|