MS-2001: div verschwinden und erscheinen lassen

das was ich im thema anspreche ist ja so kein problem, aber da gibt es ein problem:

ich hab 14 divs ( 7 x <div id="test_x" style="display:none"> und 7 x <div id="Start_1" style="display:show"> test_x ist z.b.: Start_1 und Start_2 oder Projekt_1 und Projekt_2 )

wenn ich jeztt einen anklicke will ich alle verschwinden lassen bei denen x = 2 ist (also Start_2, Projekt_2) und danach alle mit x = 1 anzeigen lassen. dann wieder den geklickten anzeigen lassen und noch ein link verfolgen. das mache ich dann im einzelnen so:

onclick="CloseAll();expandMI(Start_2);closeMI(Start_1);parent.Unten.location.href='start.asp';"

nun noch die einzelnen funktionen:

function expandMI(Item) {
 if (Item.style.display=="none") {
  Item.style.display="";
  }
 else {
  Item.style.display="none";
  }
 window.event.cancelBubble=true;
}

function closeMI(Item) {
 if (Item.style.display=="show") {
  Item.style.display="";
  }
 else {
  Item.style.display="none";
  }
 window.event.cancelBubble=true;
}

die 2 klappen ja, aber die funktion CloseAll() klappt nicht, da hab ich derzeit das:

function CloseAll() {
   Start_1.style.display="show";
   Produkte_1.style.display="show";
   Konstr_1.style.display="show";
   Referenzen_1.style.display="show";
   Messen_1.style.display="show";
   Kontakt_1.style.display="show";
   Impressum_1.style.display="show";
   Start_2.style.display="none";
   Produkte_2.style.display="none";
   Konstr_2.style.display="none";
   Referenzen_2.style.display="none";
   Messen_2.style.display="none";
   Kontakt_2.style.display="none";
   Impressum_2.style.display="none";
  }

aber da passiert einfach garnichts, da wird letztlich nichteinmal der link verfolgt :-/ , warum ?
ich hab CloseAll() schon auf 3 verschiedene arten versucht aber jedesmal gings ned. was kann ich machen?
ich habs sogar schon hingebracht dass ich Start_1 gesehen habe und den button den ich geklickt habe, aber der rest war verschwunden. ich hoffe dass ihr mir helfen könnt.

mfg

MS-2001

  1. Hallo,

    style="display:show"

    hier mal zur Abwechslung etwas SelfHTML ueber display:

    block = Erzwingt einen Block - das Element erzeugt eine neue Zeile.
    inline = Erzwingt die Anzeige im Text - das Element wird im laufenden Textfluss angezeigt.
    list-item = wie block, jedoch mit einem Aufzählungszeichen (Bullet) davor.
    marker = deklariert  automatisch generierten Text für das Element.
    run-in und compact = bewirken, dass das Element kontext-abhängig als Blockelement oder als Inline-Element dargestellt wird.
    none = Element wird nicht angezeigt und es wird auch kein Platzhalter freigelassen

    Dieter

    1. Dann siehts so aus als ob Selfhtml nicht vollständig ist.
      show ist nämlich sehr wohl möglich, bei mir klappts ja
      ich will nur alle divs sozusagen austauschen wenn nötig.

      1. Hallo MS-2001, <- mhh... ich dachte wir haben schon 2003 :-)

        show ist nämlich sehr wohl möglich,

        nein, ist es nicht - laut http://www.w3.org/TR/REC-CSS2/visuren.html#display-prop gibt es für display kein show.

        bei mir klappts ja

        IE? der macht doch jeden Mist :-) - Außerdem nehme ich mal an, dass ein Browser das Element nur nicht anzeigt, wenn display auf none steht - sonst wird es eben angezeigt :-)

        Grüße aus Nürnberg
        Tobias

  2. Hallo,

    versuchs mal mit xyz.style.visability= ????

    Schau nach unter http://selfhtml.teamone.de/javascript/objekte/style.htm

    Viel Erfolg

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
    1. Ich hab mir das gerade angeschaut, und muss sagen dass es das selbe zu sein scheint. ob ich jetzt visability="visible" oder display="show" bzw. visability="hidden" und display="none" macht ja keinen unterschied, ich kann ja mit display den div anzeigen und verbergen.

      mfg

      MS-2001

      1. Ich hab mir das gerade angeschaut, und muss sagen dass es das selbe zu sein scheint. ob ich jetzt visability="visible" oder display="show" bzw. visability="hidden" und display="none" macht ja keinen unterschied, ich kann ja mit display den div anzeigen und verbergen.

        Les das nochmal genau nach! Da gibt es einen kitzekleinen, aber wesentlichen Unterschied. Das eine reserviert den beanspruchten Platz, das andere nicht.

        hidden, show, block, none... Verwende die Eigenschaften _richtig_.
        Adressiere Deine Objekt korrekt.
        Dann wird es gehen. Sonst nie.

        fastix

        1. Wenn ich dich richtig verstanden habe dann isses ja ok dass er den beantspruchten platz reserviert. richtig adressiert isses auch. und mit den eigentschaften kann es nichts zu tun haben, es geht ja nur darum mehrere anzuzeigen / zu verstecken. mit einem gehts ja auch. *grml*

          mfg

          MS-2001

          1. richtig adressiert isses auch.

            Nö!

            und mit den eigentschaften kann es nichts zu tun haben,

            Klar. Ist ja schon der falsche Briefkasten.

            mit einem gehts ja auch.

            Einstein war intelligent, Hitler ein Massenmörder. Alle Menschen die 1945 am Leben waren und 2000 nicht mehr, waren intelligente Massenmörder.

            Nein. Du darfst nicht von Deinem Browser auf andere schließen. Es gibt eine "Norm". An die hast Du Dich als Erbauer von Webseiten zu halten. Die Programmierer der Browser sollen es auch. Ansonsten gibt es ab nächste Woche wieder britische Gewindemaße und Du braucht um einen Franzose um Dein deutsches Auto auseinanderzunehmen.

      2. Hi,

        ich dachte, Du wolltest das dynamisch machen. kann man denn in Javascript auch display=none benutzen? Hab ich da was übersehen?

        Außerdem kann man eine nicht vorhandene Node nicht einfach erscheinen lassen. dafür muss  an sie erst einfügen in das DOM. Es gibt extra Funktionen dafür.

        Liebe Grüße aus http://www.braunschweig.de

        Tom

        --
        Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
  3. function CloseAll() {
    Liste= new Array ("Start","Produkte","Konstr");
     for (i=1; i<=2; i++) {
      /* Für alle i von 1 bis 2 schreite 1 */
      for (k=0; k<Liste.length; k++) {
      /* für alle k von Null bis zur Anzahl der Elemente in Liste-1 schreite 1 */
       Objekt=Liste(k)+"_"+i;
       /* mit k=2 und i=2 folgt: Objekt = "Produkte"+"_"+2 = "Produkte_2" */
       Style=(i=1) ? "block" : "none"
       /* Wenn i=1 ist, dann ist Style="block" sonst "none" */
       document.getElementById(Objekt).style.display=Style;
       /* DasElementMitDerID(Objekt)HabeDenStyle=Style */
      }
      /* next k */
     }
     /* next i */
    }

    /* show, none sind falsch. */

    function expandMI(Item) {
       document.getElementByID(Item).style.display="block";
    }

    function closeMI(Item) {
       document.getElementByID(Item).style.display="none";
    }

    Du addressierst die Objekte falsch.
    Du schreibst bösen Spaghetticode.
    Deine Funktionen geben einen Fehler zurück. Warum sollte der Link "verfolgt" werden?

    1. das scheint mir schon viel besser, das werd ich versuchen, vielen dank.

      mfg

      MS-2001

    2. in dieser zeile kommt ein fehler:

      Style=(i=1) ? "block" : "none"

      Funktion erwartet, was meint er damit?

      mfg

      MS-2001

      1. Hi

        in dieser zeile kommt ein fehler:

        Style=(i=1) ? "block" : "none"

        Funktion erwartet, was meint er damit?

        ww             ww  EEEEEEE  RRRR           ???
            ww     w     ww   E        R   RR        ?   ??
             ww   w w   ww    EEEEE    RRRRR              ?
              ww w   w ww     E        R    R           ??
               ww     ww      EEEEEEE  R     R         ??
                                                       ?

        Liebe Grüße aus http://www.braunschweig.de

        Tom

        --
        Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
      2. in dieser zeile kommt ein fehler:

        Style=(i=1) ? "block" : "none"

        Oh Mann!

        Du kannst ja gar nichts selber machen. Warum lässt Du die Scripte für Deine offenbar gewerbliche Seite nicht von jemand machen, der was davon versteht.

        Javascript?
        30 Euro netto pro Stunde (ohne Termin)
        50 Euro netto pro Stunde (mit Termin)

        Da die Korrektur:

        Style= (i==1) ? "block" : "none";

        http://selfhtml.teamone.de/javascript/sprache/bedingt.htm

        Bei irgendeinem Vergleich steht dann nochmal nur ein "=" in der Klammer. Korrigier das auch.

        fastix

        1. bedauerlicherweiße kann ich kein javascript, das is ne andere welt. 2 programmiersprachen reichen mir. und fragen ist doch wohl noch erlaubt oder?

          mfg

          MS-2001

          1. Hi,

            bedauerlicherweiße kann ich kein javascript, das is ne andere welt. 2 programmiersprachen reichen mir. und fragen ist doch wohl noch erlaubt oder?

            Klar. Wohin sollen wir die Antwort und die Rechnug schicken? ;-))

            Liebe Grüße aus http://www.braunschweig.de

            Tom

            --
            Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
            1. weil ich zu einer sache mal ne frage hab und es nicht versteh gleich ne rechnung verschicken wollen, mensch mensch. und ich wette dass es dinge gibt die du nicht kannst.

              btw.: Style= (i==1) ? "block" : "none";  scheint immer noch falsch zu sein, da kommt wieder der gleiche fehler, aber ich frag nichtmehr. hier will man ja nur rechnungen verschicken.

              MS-2001

              1. Hallo MS-2001,

                weil ich zu einer sache mal ne frage hab und es nicht versteh gleich ne rechnung verschicken wollen, mensch mensch.

                ich glaube dein Ironiedetektor ist defekt :-)

                und ich wette dass es dinge gibt die du nicht kannst.

                hat er was anderes behauptet?

                hier will man ja nur rechnungen verschicken.

                mhh... wer will das nicht :-)

                Grüße aus Nürnberg
                To*scnr*bias

              2. Oh jeh, hallo MS (was auch immer das heißt),

                da habe ich wohl jemand an seiner empfindlichen Stelle getroffen, oder? Ich kann z.B. nicht surfen (aufm See) und habs bis heute nicht gelernt, Andere übern Tisch zu ziehen. Aber ich über noch dran. Deshalb ja die Rechnungen. Surfbretter und Trainer kosten auch Geld.

                Ach ja, Gitarre spielen kann ich auch nicht.

                Liebe Grüße aus http://www.braunschweig.de

                Tom

                --
                Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
                1. es gibt eben dinge die ich nicht leiden kann, und bissel hilfsbereitschaft könnte man doch wohl von jedem menschen erwarten, oder? neben schule und vielen anderenen dingen bleibt nichtmehr allzuviel zeit um sonstnochwas zu machen, jetzt programmier ich schon in VB und ASP, das reicht mir, damit bin ich bis heute (vor ner stunde) immer über die runden gekommen. jetzt stockts halt mal, ja und?
                  ich hab schon so vielen leuten oft und lang geholfen und habe KEINE rechnung verlang. also kann ich sowas nicht brauchen.

                  MS-2001

                  1. Holla,

                    jetzt fang bloß nicht an zu heulen, sonst erzähl ich dir, wie MEIN Tag heute war, dann hättest Du wirklich Grund...

                    Liebe Grüße aus http://www.braunschweig.de

                    Tom

                    --
                    Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
                    1. mir wirds zu bunt, such ich mir halt ein besseres forum wo die leute noch ein bissel hilfsbereitsschaft im blut haben. ich sag jetzt nichtsmehr und btw. verarschen kann ich mich dann selber, da brauch ich nicht deine hilfe dazu

                      gud nacht und adee

                      MS-2001

                      1. [...]

                        verarschen kann ich mich dann selber, da brauch ich nicht deine hilfe dazu

                        Zeig mal, wie macht man das? Das kann ich nämlich auch noch nicht.

                        Liebe Grüße aus http://www.braunschweig.de

                        Tom

                        --
                        Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
                        1. fastix 07. 02. 2003, 22:22

                          Schau dort nach.

                          fastix

              3. btw.: Style= (i==1) ? "block" : "none";  scheint immer noch falsch zu sein, da kommt wieder der gleiche fehler,

                Dann schreib:

                Style="none";
                if (i==1) {
                 Style="block";
                }

                oder:

                if (i==1) {
                 Style="block";
                } else {
                 Style="none";
                }

                oder:

                switch(i) {
                 case 1:
                   Style="block";
                 break;
                 case 2:
                   Style="none";
                 break;
                }

                http://selfhtml.teamone.de/javascript/sprache/bedingt.htm

                Oder der Fehler liegt ganz wo anders....

                fastix

                --
                Heute back ich, morgen koch ich und übermorgen ...
        2. Hi fastix,

          nun schimpf doch nicht so auf den Matze (?).

          Du kannst ja gar nichts selber machen. Warum lässt Du die Scripte für Deine offenbar gewerbliche Seite nicht von jemand machen, der was davon versteht.

          30 Euro netto pro Stunde (ohne Termin)
          50 Euro netto pro Stunde (mit Termin)

          Das ist außerdem noch viel zu billig, wenn Du berücksichtigst, dass Du heute in 5 Minuten einen fehler beseitigen kannst, an dessen Erforschung du vielleicht zwei Wochen oder länger gesessen hast.

          Liebe Grüße aus http://www.braunschweig.de

          Tom

          --
          Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
          1. Hi fastix,

            Das ist außerdem noch viel zu billig, wenn Du berücksichtigst, dass Du heute in 5 Minuten einen fehler beseitigen kannst, an dessen Erforschung du vielleicht zwei Wochen oder länger gesessen hast.

            Nun ja. In Kassel sind die Mieten und die Honorarsätze bei so trivialen Programmieraufgaben (Wie sie JavaScript nunmal nur bietet...) niedrig.

            Dafür kann ich in fünf Minuten mehr Fehler machen als hier Beiträge in an einem ganzen Tag gepostet werden :)

            Immerhin kann man die ja mit Copy & Paste clonen.

            Mäh!

            fastix