max 1 sichtbarer div

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • max 1 sichtbarer div

    hallo.

    habe folgendes script um divs, in denen informationen stehen, per klick auf den jeweiligen link ein-/auszublenden:
    Code:

    function definition(id) {
    var css = document.getElementById(id).style;
    if(css.display == 'block') {
    css.display = 'none';
    } else {
    css.display = 'block';
    }
    }


    nun möchte ich jedoch immer maximal nur einen div öffnen können. falls man also einen anderen link anklickt, sollte der vorherige div geschlossen werden und der neue angezeigt werden.
    jetzt fehlt mir die passende funktion. weiß jemand rat?

    grüße und danke für hilfe,

    ranzi
    Die Milch bleibt ranzig!

  • #2
    Das würde ich über eine Schleife lösen.
    Schließe erst alle Div-Container und öffne danach den entsprechenden wieder.

    Gruß
    Stephan
    [font=Verdana]SteGaSoft
    Theorie ist, wenn jeder weiß, wie es geht, aber nichts funktioniert, Praxis ist, wenn alles funktioniert und niemand weiß warum.
    [/font]

    Kommentar


    • #3
      des habsch probiert blos dann öffnet er irgendwie gar keinen mehr..
      Die Milch bleibt ranzig!

      Kommentar


      • #4
        wie sieht denn dein Versuch aus (modifizierte Funktion) ?

        Kommentar


        • #5
          Ich habs folgendermaßen gelöst. In einem Array stehen die ids der divs, die ich mit der function beeinflussen möchte. An die funktion übergebe ich nun die id des divs, der angezeigt werden soll. mittels schleife durchlaufe ich den array und knipse nach bedarf an oder aus.

          Dazu habe ich mir eine liste mit links zum wählen der divs gemacht.

          Kommentar


          • #6
            Die Idee mit dem Array ist doch ok.

            Dazu habe ich mir eine liste mit links zum wählen der divs gemacht.
            Was meinst du damit?

            Kommentar


            • #7
              Naja, irgendwie muss man doch wählen können, welches div man gerade sehen will. Also sowas hier:

              PHP-Code:
                  <ul>
                      <
              li><a href="javascript:showhide('tools')">Tools</a></li>
                      <
              li><a href="javascript:showhide('layers')">Layer</a></li>
                      <
              li><a href="javascript:showhide('legend')">Legend</a></li>
                  </
              ul

              Kommentar


              • #8
                also ich hab hier nur fürn kollegen gefragt aber der hat des nu auf andere weise gelöst
                trotzdem vielen dank für die mühen
                mfg
                ranzi
                Die Milch bleibt ranzig!

                Kommentar


                • #9
                  Für die Nachwelt kann ich ja noch grad meine JS - Funktion posten:

                  PHP-Code:
                          function showhide(show) {
                              var 
                  tools = new Array('tools''layers''legend');

                              if (
                  show == nullshow 'tools';
                              
                              for (
                  elm in tools) {
                                if (
                  tools[elm] == show) {
                                  
                  document.getElementById(tools[elm]).style.visibility "visible";
                                  
                  document.getElementById(tools[elm]).style.display "block";
                                  
                  document.map.legtool.value tools[elm];
                                } else {
                                    
                  document.getElementById(tools[elm]).style.visibility "hidden";
                                    
                  document.getElementById(tools[elm]).style.display "none";
                                }
                              }
                          } 

                  Kommentar


                  • #10
                    Grundliegend soweit, so gut...

                    Nur warum "display: none" UND "visibility: hidden"...

                    visbility: hidden versteckt das element, reserviert aber Platz dafür im Layout.
                    display: none versteckt das element und reserviert keinen Platz dafür im Layout

                    Kommentar


                    • #11
                      Ich wollte wohl auf Nummer sicher gehen ...

                      Kommentar

                      Lädt...
                      X