Anzeige

Mit JS geänderten Style abfragen?

Mit JS geänderten Style abfragen? | PSD-Tutorials.de

Erstellt von Duffman15, 11.03.2008.

  1. Duffman15

    Duffman15 Nicht mehr ganz neu hier

    Dabei seit:
    09.04.2007
    Beiträge:
    108
    Geschlecht:
    männlich
    Ort:
    Bayern
    Software:
    Photoshop CS3, Dreamweaver CS3, FLash CS3
    Kameratyp:
    Canon PowerShot A75
    Mit JS geänderten Style abfragen?
    Hey ho,
    Ich hab mal wieder ein problem mit JavaScript :p
    Und vorneweg: Ich kann kein JS :(
    Und zwar möchte ich einen div, beim ersten klick erscheinen lasse, beim nächsten Klick wieder unsichtbar machen. Beim dritten wird er wieder sichtbar usw.

    Ich hab das jetzt mal so versucht:

    Code (Text):
    1.  
    2. function vdiv {
    3.   if(document.getElementById("divname").style.display = "none") {
    4.      document.getElementById("divname"),style.display = "block";
    5.   }
    6.   else {
    7.      document.getElementById("divname").style.display = "none";
    8.   }
    9. }
    10.  
    Das sichtbar machen funktioniert auch wunderbar, aber es wird nicht mehr unsichtbar.
    Nach dem, was ich mit Google rausgefunden hab, kann es auch nicht funktionieren, da ich nur den Style aus dem HTML-Dokument abfrage, wo die Änderung per JavaScript nicht berücksichtigt wird (Glaub ich zumindest :uhm:)
    Außerdem habe ich mit Google die Funktionen "currentStyle" und "runtimeStyle" gefunden und mit denen herumprobiert, aber das funktioniert irgendwie auch nicht :(

    Hoffe ihr könnt mir Helfen :)

    Liebe Grüße
    Lucas
     
    #1      
  2. Duddle

    Duddle Posting-Frequenz: 14µHz

    Dabei seit:
    03.02.2006
    Beiträge:
    3.864
    Geschlecht:
    männlich
    Ort:
    Dresden
    Mit JS geänderten Style abfragen?
    AW: Mit JS geänderten Style abfragen?

    Das einfache = ist bei JS der Zuweisungsoperator. Das heisst, du änderst innerhalb der if-Abfrage den Wert auf "none" (und direkt danach wieder auf "block", obwohl da ein Komma statt einem Punkt steht). Diese Zuweisung ist immer true, deshalb wird nie dein else ausgeführt.
    Zum Vergleichen von zwei Werten musst du == benutzen.


    Duddle
     
    #2      
  3. gp812

    gp812 Newbster

    Dabei seit:
    23.12.2007
    Beiträge:
    278
    Geschlecht:
    männlich
    Ort:
    Stuttgart
    Software:
    CS3, EditPlus
    Mit JS geänderten Style abfragen?
    AW: Mit JS geänderten Style abfragen?

    PHP:
    1.  
    2. function DivHS (div_id)
    3. {
    4. if(document.getElementById(div_id).style.display == 'none')
    5. document.getElementById(div_id).style.display = 'block';
    6. if(document.getElementById(div_id).style.display == 'block')
    7. document.getElementById(div_id).style.display = 'none';
    8. if(document.getElementById(div_id).style.visibility == 'hidden')
    9. document.getElementById(div_id).style.visibility = 'visible';
    10. if(document.getElementById(div_id).style.visibility == 'visible')
    11.  document.getElementById(div_id).style.visibility = 'hidden';
    12. }
    13.  
    14. <div id="test" style="visibility=hidden; display:none; "></div>
    15.  
     
    #3      
  4. Duffman15

    Duffman15 Nicht mehr ganz neu hier

    Dabei seit:
    09.04.2007
    Beiträge:
    108
    Geschlecht:
    männlich
    Ort:
    Bayern
    Software:
    Photoshop CS3, Dreamweaver CS3, FLash CS3
    Kameratyp:
    Canon PowerShot A75
    Mit JS geänderten Style abfragen?
    AW: Mit JS geänderten Style abfragen?

    Danke für die Antworten :) Leider funktionieren sie nicht... :( Jetzt wird das div nicht einmal mehr sichtbar.
    Hier mal mein Code:

    JavaScript eben:
    Code (Text):
    1.  
    2. function vdiv {
    3.   if(document.getElementById("divname").style.display == "none") {
    4.      document.getElementById("divname").style.display = "block";
    5.   }
    6.   else {
    7.      document.getElementById("divname").style.display = "none";
    8.   }
    9. }
    HTML:
    HTML:
    1.  
    2. <div onclick="new Effect.toggle('divso', 'slide'); vdiv(); return false;">Klick hier...</div>
    3. .
    4. .
    5. .
    6. <div id="divname"></div>
    7.  
    Das "Effect.toggle" kommt von Scriptaculous und ist für eina nderes div. Der Fehler ist nicht, dass in vdiv() keine Angaben stehen, da die ID in JavaScript eh schon angegeben ist. Das div "divname" ist momentan per ID im StyleSheet gestyled, hatte es allerdings auch schon im Tag, hat sich nichts geändert.

    Den Code von gp812 hab ich auch probiert, funktionierte aber auch irgendwie nicht... Also ich vermute, dass ichs peinlicherweise irgendwie falsch eingebunden habe :S

    Hoffe ihr könnt mir helfen :(

    Liebe Grüße
    Lucas

    Ps: Vielleicht ist ja im Scriptaculous schon eine Funktion dafür? Und wie gesagt kenn ich mich mit JavaScript quasi gar nicht aus. Also bitte nicht steinigen für eventuelle n00b-Fehler :D
     
    Zuletzt bearbeitet: 12.03.2008
    #4      
  5. blackout

    blackout Schaf im Wolfspelz

    Dabei seit:
    12.09.2005
    Beiträge:
    3.359
    Geschlecht:
    männlich
    Ort:
    Würzburg
    Kameratyp:
    Rollei 35 S
    Mit JS geänderten Style abfragen?
    AW: Mit JS geänderten Style abfragen?

    gp812, bei deinem Code durchläuft jedes beliebige Div den If-Block der es unsichtbar macht, das müssten wenn schon else-ifs sein :)
     
    #5      
  6. gp812

    gp812 Newbster

    Dabei seit:
    23.12.2007
    Beiträge:
    278
    Geschlecht:
    männlich
    Ort:
    Stuttgart
    Software:
    CS3, EditPlus
    Mit JS geänderten Style abfragen?
    AW: Mit JS geänderten Style abfragen?

    Jo. Klar. Danke.
    PHP:
    1.  
    2. if(document.getElementById(div_id).style.display == 'none')
    3. document.getElementById(div_id).style.display = 'block';
    4. else
    5. document.getElementById(div_id).style.display = 'none';
    6. if(document.getElementById(div_id).style.visibility == 'hidden')
    7. document.getElementById(div_id).style.visibility = 'visible';
    8. else
    9.  document.getElementById(div_id).style.visibility = 'hidden';
    War zu faul alles zu schreiben, hab nur copy-paste benutzt. Halt nur block/none geändert :-(
     
    #6      
  7. Duddle

    Duddle Posting-Frequenz: 14µHz

    Dabei seit:
    03.02.2006
    Beiträge:
    3.864
    Geschlecht:
    männlich
    Ort:
    Dresden
    Mit JS geänderten Style abfragen?
    AW: Mit JS geänderten Style abfragen?

    Duffman: Installier dir mal was zum debuggen, bspw. die Firefox-Erweiterung "FireBug". Dann bekommst du sofort die Fehler angezeigt. Bei dir ist es was ganz simples, ein schlichter Anfängerfehler:
    Funktionen haben immer eine öffnende und schliessende Klammer in der Definition (genauso beim Aufruf), um mglw. Parameter zu übergeben.

    Du schreibst also statt "function vdiv {" das: "function vdiv() {" und alles sollte funktionieren wie erwartet :)


    Duddle
     
    #7      
  8. Duffman15

    Duffman15 Nicht mehr ganz neu hier

    Dabei seit:
    09.04.2007
    Beiträge:
    108
    Geschlecht:
    männlich
    Ort:
    Bayern
    Software:
    Photoshop CS3, Dreamweaver CS3, FLash CS3
    Kameratyp:
    Canon PowerShot A75
    Mit JS geänderten Style abfragen?
    AW: Mit JS geänderten Style abfragen?

    Okay werd ich tun, den Fehler hab ich mittlerweile auch entdeckt *pein* :uhm:

    Danke vielmals :)
     
    #8      
x
×
×