Funktion zum ausblenden aller momentan angezeitgen <div>'s

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

  • Funktion zum ausblenden aller momentan angezeitgen <div>'s

    Ich hab hier ne kleine funktion:
    PHP-Code:
    function show (site) {
      if (
    document.getElementById(site).style.display == "none")
      {
        
    document.getElementById(site).style.display "block";
      }
      else
      {
        
    document.getElementById(site).style.display "none";
      }

    So in der funktion wird immer der div angezeigt auf den man geklickt hat(variable: site) außer er ist schon offen dann wird er geschlossen, ich würde aber gerne das ALLE div's die grad zusehen sind auf "none" gestellt werden und dann nur der wo angeklickt wurde angezeigt wird jmd. ne idee? wäre echt super, vielen dank im vorraus für jede antwort

    Mit freundlichen Grüßen,
    Vincent M.

  • #2
    durchlaufe mit einer Schleife durch alle Elemente, überprüfe ob es sich um ein div-Tag handelt, überprüfe das display-Eigenschaft und setze entsprechend den gewünschten Wert.

    Kommentar


    • #3
      ich hab eigentlich kein plan von javascript das ergebnis da oben hab ich mir so zusammengeschustert in 2stunden arbeit für sowas ^^
      hast mir vllt ein link oder so wo die funktionen von javascript erklärt sind oder sowas? gibts es sowas?

      tut mir leid für solche anfängerfragen aber irgentwann muss man ja mal anfangen

      danke schonmal für den tipp

      Kommentar


      • #4
        schaue dir das Beispiel und die Erklärung dazu mal an: http://de.selfhtml.org/javascript/ob...nte.htm#option

        Ansonstens ist http://de.selfhtml.org/javascript/index.htm ein gut dokumentierter Nachschlagewerk.

        Kommentar


        • #5
          hab jetzt wieder was zusammen gewürfelt, ich weiß das es niemals mehr als 10 div#s auf einer seite geben kann deshalb hab ich das so begrenzt, aber das geht net so

          PHP-Code:
          function show (site) {
          var 
          count 0;
           while (
          count 10) {
              
          document.getElementsByTagName("div").style.display "none";
              
          count++;
              }
          document.getElementById(site).style.display "block";

          kann mir jemand bitte sagen wieso nicht, und noch was, geht es das ich net das mit "count" machen muss sondern das ich halt nehm das er das durch macht bis halt keine divs mehr da sind?

          Kommentar


          • #6
            kann mir jemand bitte sagen wieso nicht ...
            du hast die Seite nicht gründlich genug gelesen

            Kommentar


            • #7
              hab nochmal nachgelesen aber jetzt häng ich wiedermal ^^
              bin jetzt schon so weit das er alle zu macht ABER wenn ich eins anklick um es aufzumachen geht dat aber nich

              PHP-Code:
              function show (site)
              {
                if (
              document.getElementById(site).style.display == "none")
                {
                  for (
              020i++) {
                  
              document.getElementsByTagName("div")[i].style.display "none";
                  }
                  
              document.getElementById(site).style.display "block";
                }
                if (
              document.getElementById(site).style.display == "block")
                {
                  for (
              020i++)
                  
              document.getElementsByTagName("div")[i].style.display "none";
                }

              Kommentar


              • #8
                du musst die Reihenfolge der Abarbeitung in der Funktion verfolgen, dann weisst du wieso es nicht wieder angezeigt wird.

                Kommentar


                • #9
                  mhh was meinst du mit abarbeitung innerhalb der funktion? ich bin das jetzt mehrmals im kopf durchgegangen also hab mir überlegt ich klick jetzt auch eins das momentan "block" is dann machen ich jetzt das und bla aber ich finde den fehler nicht

                  ich bin noch neu kannst du mir den vllt sagen? wäre echt nett... ich suche jetzt mal weiter aber wäre echt super, allein nochn tipp würde schon gut sein ich bin gerne bereit selber zusuchen und zulernen denn das ist ja mein ziel

                  (Vielen Dank für deine bisherigen bemühungen und hilfen, bist echt nett )

                  Kommentar


                  • #10
                    also schau dir meine Kommentare mal an:

                    PHP-Code:
                    function show (site// id des div-Tag wird übergeben
                    {
                      if (
                    document.getElementById(site).style.display == "none"// wenn unsichtbar
                      
                    {
                        for (
                    020i++) { // dann alle unsichtbar gesetzt
                        
                    document.getElementsByTagName("div")[i].style.display "none";
                        }
                        
                    document.getElementById(site).style.display "block"// nur das betreffende nicht
                      
                    }
                      
                    // bis zu diesem Zeitpunkt ist das übergebene Element sichtbar,
                      // alle andere nicht.
                      
                    if (document.getElementById(site).style.display == "block"
                      
                    // wenn das übergebene Element sichtbar
                      
                    {
                        for (
                    020i++) // dann alle unsichtbar gesetzt
                        
                    document.getElementsByTagName("div")[i].style.display "none";
                      }
                      
                    // und hier: alle div-Elemente auf der Seite unsichtbar

                    btw: du wirst eine JS-Fehlermeldung bekommen, wenn es auf der Seite weniger als 20-div-Elemente gibt, macht lieber was mit .length
                    Zuletzt geändert von asp2php; 04.02.2006, 22:55.

                    Kommentar


                    • #11
                      ah ok
                      aber so müsste es doch gehn tuts jetzt aber auch net

                      PHP-Code:
                      function show (site//site is geklickt
                      {
                        if (
                      document.getElementById(site).style.display == "none"//wenn site unsichtbar is
                        
                      {
                          for (
                      020i++) { //alle unsichtbar
                          
                      document.getElementsByTagName("div")[i].style.display "none";
                          }
                          
                      document.getElementById(site).style.display "block"//nur site öffnen
                        
                      } else { //wenn seite nicht unsichtbar ist
                          
                      for (020i++) { //alle unsichtbar setzen
                          
                      document.getElementsByTagName("div")[i].style.display "none";
                          }
                        }
                      }

                      Wo is da jetzt schon wieder der fehler? ^^ tut mir leid das ich so viele fehler hab aber irgentwie check ich javascript (noch)nicht

                      Kommentar


                      • #12
                        wenn du alle auf unsichtbar setzst, was meinst du, was passiert mit dem "site" ?

                        Kommentar


                        • #13
                          ja aber das machts ja nur wenn sichtbar war (wegen dem else) oder nicht?

                          Kommentar


                          • #14
                            was heisst denn tut nicht bei dir, was macht es? hast du wirklich 20 Elemente auf der Seite?

                            Kommentar


                            • #15
                              ohje

                              PHP-Code:
                              <script type="text/javascript">
                              function 
                              show(site)
                              {      var 
                              i=0;
                                  var 
                              d;
                                  while(
                              document.getElementsByTagName('div')[i++])
                                  {    
                              d.style.display='none';
                                  }
                                  
                              document.getElementById(site).style.display "block";
                              }
                              </
                              script
                              Sport Dates

                              Kommentar

                              Lädt...
                              X