Ergebnis 1 bis 13 von 13
  1. #1
    MauroNegro ist offline Jungspund
    registriert
    05-04-2008
    Ort
    Stuttgart
    Beiträge
    12

    JS Module öffnen und schließen mit Bilder wechsel

    Hallo,

    ich bin hier neu im Forum. Und hab ein Problem mit dem ich einfach nicht klar komme. In JS hab ich nur Leichte Grundkentnisse.

    Mein Problem ist das ich ein Module mittels CSS generiert und mit JS öffnen und schließen lässt. Das Läuft einwandfrei. Nun muss sich jedoch auch der Icon dazu verändern. Bei offenem zustand sieht das Symbol so aus und bei geschlossenem so . Ich habs bis jetzt nur so hinbekommen das sich es vom offenem ins Geschlossenen Zustand verändert. Jedoch nicht anders rum. Hab schon viel ausprobiert aber leider ohne Erfolg.

    JavaScript:
    Code:
    <script language="JavaScript" type="text/javascript">
    <!--
    
    function module(id)
    {
    	if (document.layers)
    	{
    		current = (document.layers[id].display == 'none') ? 'block' : 'none';
    		document.layers[id].display = current;
    	}
    	else if (document.all)
    	{
    		current = (document.all[id].style.display == 'none') ? 'block' : 'none';
    		document.all[id].style.display = current;
    	}
    	else if (document.getElementById)
    	{
    		vista = (document.getElementById(id).style.display == 'none') ? 'block' : 'none';
    		document.getElementById(id).style.display = vista;
    	}
    }
    
    function moduleBILD(bildID)
    {
       if(document.layers)
        {
    		current = (window.document.image[bildID].src = "image/minimieren.gif") ? 'image/maximieren.gif' : 'image/minimieren.gif';
    		window.document.image[bildID].src = current;
        }
        else
        {
    		window.document.images[bildID].src = "image/minimieren.gif"  ? 'image/maximieren.gif' : 'image/minimieren.gif';
    	}
    }
    
    -->
    </script>
    Live DEMO: L´utima volta


    MfG Mauro Negro

  2. #2
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.714

    AW: JS Module öffnen und schließen mit Bilder wechsel

    Du hast zwei Probleme:
    1. Einen Syntaxfehler - mal schau'n ob du ihn findest
    2. lass dir doch mal dein window.document.image[bildID].src als alert ausgeben

    PS: deine Fallunterscheidung ist in meinen Augen völlig überflüssig, da document.getElementById() eigentlich in allen Browsern funktionieren sollte

  3. #3
    MauroNegro ist offline Jungspund
    registriert
    05-04-2008
    Ort
    Stuttgart
    Beiträge
    12

    AW: JS Module öffnen und schließen mit Bilder wechsel

    Tut mir Leid aber ein Syntax Fehler kann ich da nicht Endecken.
    Wie soll ich das als Alert ausgeben??

    Sry bin in JS eine niete!

  4. #4
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.714

    AW: JS Module öffnen und schließen mit Bilder wechsel

    Syntaxfehler: in moduleBILD in deiner Abfrage zu current ist kein Vergleichsoperator (==) sondern der Gleichsetzungsoperator (=)

    Schreib in deine moduleBILD do einfach als ersten Aufruf: alert(document.getElementById(bildID).src);

  5. #5
    MauroNegro ist offline Jungspund
    registriert
    05-04-2008
    Ort
    Stuttgart
    Beiträge
    12

    AW: JS Module öffnen und schließen mit Bilder wechsel

    Die Syntax müsste jetzt so Stimmen:

    Code:
    ...
    function moduleBILD(bildID)
    {	
    	if(document.layers)
        {
    		current = (window.document.image[bildID].src == "image/minimieren.gif") ? 'image/maximieren.gif' : 'image/minimieren.gif';
    		window.document.image[bildID].src = current;
        }
        else
        {
    		window.document.images[bildID].src = "image/minimieren.gif" ? 'image/maximieren.gif' : 'image/minimieren.gif';
    	}
    }
    ...
    Beim einfügen des Alerts erscheint eine Meldung des Pfades des Bildes was eig. Angezeigt werden sollte jedoch nicht angezeigt wird.

    Siehe Live DEMO: L´utima volta

  6. #6
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.714

    AW: JS Module öffnen und schließen mit Bilder wechsel

    Also bei mir wir nach einmaligem klicken immer die maximieren.gif angezeigt.

    Das sollte dir aber nur zeigen, was in dieser Variablen steht und schau' nun mal, womit du vergleichst.

  7. #7
    MauroNegro ist offline Jungspund
    registriert
    05-04-2008
    Ort
    Stuttgart
    Beiträge
    12

    AW: JS Module öffnen und schließen mit Bilder wechsel

    Stimmt der Vergleicht immer mit dem Gleichen.

    Wie kann ich das ändern. Ich habe die else angabe geändert, kommt jedoch das gleiche raus.

    Code:
    ...
    function moduleBILD(bildID)
    {
    alert(document.getElementById(bildID).src);
    	if(document.layers)
    	{
    		current = (window.document.image[bildID].src == "image/minimieren.gif") ? 'image/maximieren.gif' : 'image/minimieren.gif';
    		window.document.image[bildID].src = current;
    	}
    	else
    	{
    		window.document.images[bildID].src = "image/maximieren.gif" ? 'image/minimieren.gif' : 'image/maximieren.gif';
    	}
    }
    ...
    Wer meint gut zu sein, hat aufgehört besser zu werden!

  8. #8
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.714

    AW: JS Module öffnen und schließen mit Bilder wechsel

    Also ich würde den Bildern allen ein neues Attribut geben (z.B. isMax), die du am Anfang richtig setzt (z.B. auf 0 oder 1), danach deine Fallunterscheidung machst und dann das isMax auch umstellst:

    Html:
    Code:
    <img src="image/minimieren.gif" (...) isMax=0 id="bild1">
    <img src="image/maximieren.gif" (...) isMax=1 id="bild2">
    JS:
    Code:
    function moduleBILD(bildID)
    {
    	var bild = document.getElementById(bildID);
    	bild.src = (bild.isMax == 1) ? 'image/minimieren.gif' : 'image/maximieren.gif';
    	bild.isMax = (bild.isMax == 1) ? 0: 1;
    	
    }
    Andere Möglichkeit wären natürlich reguläre Ausdrücke (weiß nicht, ob du damit schon mal gearbeitet hast? Wenn nicht ist es sicherlich wert, sich da mal reinzulesen, z.B. bei Selfhtml):
    Abfrage mit bild.src = (bild.src.match(/maximieren.gif/i)) ? 'image/minimieren.gif' : 'image/maximieren.gif';

    [EDIT]: Im Nachhinein gefällt mir die Idee mit den regulären Ausdrücken viel besser

  9. #9
    MauroNegro ist offline Jungspund
    registriert
    05-04-2008
    Ort
    Stuttgart
    Beiträge
    12

    AW: JS Module öffnen und schließen mit Bilder wechsel

    Vielen Dank für deine Hilfe. Es funktioniert nun genau so wie ich es mir vorgestellt habe. Ich werde mich mal mit den Regulären Ausdrücken in nächster Zeit befassen. Dadnke für den Tipp!

    Mit freundlichen Grüßen Mauro Negro
    Wer meint gut zu sein, hat aufgehört besser zu werden!

  10. #10
    MauroNegro ist offline Jungspund
    registriert
    05-04-2008
    Ort
    Stuttgart
    Beiträge
    12

    AW: JS Module öffnen und schließen mit Bilder wechsel

    Ich hab doch noch eine kleine Frage.

    Und zwar wenn die Box im geschlossenem Zustand geladen wird, funktioniert das Skript nicht mehr einwandfrei.

    Das kann man ganz gut an der Live DEMO sehen: L´utima volta

    DIV-Box Infobox

    MfG Mauro Negro
    Wer meint gut zu sein, hat aufgehört besser zu werden!

  11. #11
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.714

    AW: JS Module öffnen und schließen mit Bilder wechsel

    1. isMax muss natürlich an den Anfangszustand der Box angepasst werden
    2. schreib' mal in die Tags isMax="0" - also mit Anführungsstrichen, denn wie ich im DOM-Inspector sehe wird das irgendwie nicht interpretiert.

    [EDIT] Hab's grad ausprobiert - mit Anführungsstirchen wird's interpretiert.
    Geändert von kkapsner (06-04-2008 um 15:53 Uhr) Grund: Rechtschriebfehler und weiteres Wissen

  12. #12
    MauroNegro ist offline Jungspund
    registriert
    05-04-2008
    Ort
    Stuttgart
    Beiträge
    12

    AW: JS Module öffnen und schließen mit Bilder wechsel

    Danke für dein Tipp mit den Anfürungsstrichen. Das Script funktioniert nun NUR im IE. Das Script muss auch in anderen Browsern wie z.B.: Firefox, Opera, Safari...

    Wäre echt super wenn du mir da noch Weiterhelfen könntest

    MfG Mauro Negro
    Wer meint gut zu sein, hat aufgehört besser zu werden!

  13. #13
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.714

    AW: JS Module öffnen und schließen mit Bilder wechsel

    Wenn du in dem HTML-Tag anstatt isMax="1" onload="this.isMax=1;" schreibst funktioniert es bei mir im FF.

Ähnliche Themen

  1. Mit JS Popups öffnen und schließen
    Von Foster im Forum JavaScript
    Antworten: 4
    Letzter Beitrag: 01-09-2007, 20:15
  2. Problem mit Bilder wechsel
    Von Belenus im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 08-08-2007, 20:26
  3. Antworten: 7
    Letzter Beitrag: 31-05-2006, 15:40
  4. Bilder öffnen mit Popup
    Von clubmaster im Forum JavaScript
    Antworten: 7
    Letzter Beitrag: 04-08-2003, 13:56
  5. Antworten: 1
    Letzter Beitrag: 24-07-2002, 22:19

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •