Atom Waffel: onclick mit gefloatetem DIV

Hallo zusammen,

Ich habe einen DIV-Container in dem ein anderer Div gefloatet ist:

Mit freundlichen Grüßen,
Atom Waffel

  1. Hallo,

    Hallo zusammen,

    Ich habe einen DIV-Container in dem ein anderer Div gefloatet ist:

    XD bin auf enter gekommen.

    egal also:

    Ich habe einen DIV-Container in dem ein anderer Div gefloatet ist:

      
    #container {  
    width: 100px;  
    height: 30px;  
    }  
    #gefloateter {  
    float:left;  
    width:20px;  
    height: 30px;  
    }
    
      
    <div id="container" name="container">  
    <div id="gefloateter" onclick="funktion()" name="gefloateter"></div>  
    </div>  
    
    

    noch die funktion():

      
    if (document.getElementById('container').style.width = '100px') {  
       document.getElementsByName("gefloateter")[0].style.backgroundImage = "url(ausklappen.png)";  
       document.getElementsByName("container")[0].style.width = "200px";  
    } else {  
      document.getElementsByName("gefloateter")[0].style.backgroundImage = "url(zuklappen.png)";  
      document.getElementsByName("container")[0].style.width = "100px";  
    }  
      
    
    

    Wenn ich jetzt auf "gefloateter" klicke wird der "container" doppelt so breit und somit auch "gefloateter" verschoben. will ich jetzt aber wieder
    mit einem erneuten klick die größe wieder auf 100px machen passiert nix und es kommt auch keine fehlermeldung in der fehlerconsole.

    Was mach ich falsch?

    mfg,
    AtomWaffel

    1. Hi,

      if (document.getElementById('container').style.width = '100px') {

      Ich vermute du möchtest hier einen [link:http://de.selfhtml.org/javascript/sprache/operatoren.htm#vergleich@title=Vergleich] und keine Zuweisung machen.
      So wie es momentan dasteht ist es immer true.

        
      
      > Was mach ich falsch?  
      
      Etwas das wohl allen von uns schonmal passiert ist.  
        
      mfG,  
      steckl
      
      1. Hallo,

        danke,
        hätte mir eigentlich nach dem 5mal durchlesen auffallen müssen, :)
        nächstes mal werd ichs 6mal durchlesen^^

        Mit freundlichen Grüßen,
        Atom Waffel

      2. Halloele!

        Was mach ich falsch?
        Etwas das wohl allen von uns schonmal passiert ist.

        Weshalb der Code ueberhaupt nur geht. Denn was in seinem CSS steht wird wohl kaum von seinem JS gelesen werden koennen, oder? Dieser Code duerfte dafuer sorgen, das man erstmal 2x klicken muss, bevor es funktioniert. (Oder ich irre mich und hab totalen Bullshit erzaehlt)

        --
        Trau Dich!
         
        1. Hallo,

          »»(Oder ich irre mich und hab totalen Bullshit erzaehlt)

          das hast du^^
          Mit freundlichen Grüßen,
          Atom Waffel

          1. Hi,

            »»(Oder ich irre mich und hab totalen Bullshit erzaehlt)

            das hast du^^

            Bist du dir sicher?

            Es kann beim ersten mal nicht gelesen werden was die Breite ist (da diese nicht mit JS gesetzt wurde) und müsste deshalb ein Leerstring sein, was nicht das gleiche ist wie '100px'. Also müsste die Bedingung beim ersten mal false liefern.
            Darum müsste die Breite nochmal auf 100px gesetzt werden, was sie aber eigentlich davor auch schon war.

            Versuch mal die Breite beim ersten mal mit alert() ausgeben zu lassen.

            (Das alles sollte zumindest zutreffen, wenn du bis auf das "=" nichts weiter geändert hast)

            Was mir noch aufgefallen ist:
            Warum sprichst du die Elemente einmal über name und einmal über die id an?
            Wobei das Div-Tag eigentlich garkein name-Attribut haben darf.

            mfG,
            steckl

            1. Hallo,

              das mit dem 100px kann ich nicht nachvollziehen ich klick eimal und es wird doppelt so breit.

              »»Wobei das Div-Tag eigentlich garkein name-Attribut haben darf.

              WIRKLICH?

              Mit freundlichen Grüßen,
              Atom Waffel

              1. Hi,

                das mit dem 100px kann ich nicht nachvollziehen ich klick eimal und es wird doppelt so breit.

                Das kann ich wiederum nicht nachvollziehen.
                Ich hab den Code aus deinem Ausgangsposting übernommen und dann das "=" durch "==" ersetzt. Jetzt muss ich 2mal auf das div clicken, damit sich die Breite zum ersten mal ändert. Anschließend verhält es sich wie gewünscht.

                »»Wobei das Div-Tag eigentlich garkein name-Attribut haben darf.

                WIRKLICH?

                Soweit ich das verstanden habe stehen in der Attribut-Referenz alle Attribute, die die einzelnen Elemente haben dürfen. Und bei Div steht name nicht dabei.

                mfG,
                steckl

                1. Hallo,

                  Hi,

                  das mit dem 100px kann ich nicht nachvollziehen ich klick eimal und es wird doppelt so breit.

                  Das kann ich wiederum nicht nachvollziehen.
                  Ich hab den Code aus deinem Ausgangsposting übernommen und dann das "=" durch "==" ersetzt. Jetzt muss ich 2mal auf das div clicken, damit sich die Breite zum ersten mal ändert. Anschließend verhält es sich wie gewünscht.

                  Jetzt hab ich endlich begriffen was ihr meint :D.
                  Dieses Problem kann leicht umgehen indem man anstatt  ==100
                  einfach != 200 schreibt.

                  Soweit ich das verstanden habe stehen in der Attribut-Referenz alle Attribute, die die einzelnen Elemente haben dürfen. Und bei Div steht name nicht dabei.

                  könnt ich den link haben?

                  Mit freundlichen Grüßen,
                  Atom Waffel

                  1. Hi,

                    Soweit ich das verstanden habe stehen in der Attribut-Referenz alle Attribute, die die einzelnen Elemente haben dürfen. Und bei Div steht name nicht dabei.

                    könnt ich den link haben?

                    Den habe ich hier bereits weiter oben gepostet.

                    mfG,
                    steckl

                    1. Hallo,

                      Du hast recht.
                      Werd den Fehler beheben, danke.
                      Jetzt stimmt aber alles ;D
                      Mit freundlichen Grüßen,
                      Atom Waffel

              2. Hallo,

                das mit dem 100px kann ich nicht nachvollziehen ich klick eimal und es wird doppelt so breit.

                Setzt Du vorher schon per JS die Breite? Welchen Browser hast Du? Eigentlich ist das 'Ich kann mit JS mein CSS nicht auslesen.' Eines der haeufigeren Probleme hier.

                --
                Trau Dich!