Manni: Bildwechsel hin und zurück an mehreren Stellen

Hi Fachwelt,

habe folgendes Problem:
zwei Grafiken sollen vor Aufklappmenues auftauchen:

  • wenn zu und - wenn auf
    jeweils auf click soll + geändert werden zu - und beim Zuklappen wieder + angezeigt werden.
    An 1 Stelle hat mein js prima funktioniert, als ich es dann aber an mehreren Stellen eingebaut hatte verändert sich immer nur die Grafik an der 1. Stelle auf der Seite anstatt die Grafik an der Stelle, auf die geklickt wird.

hat jemand eine Tipp für mich???
so sieht meine Funktion jetzt aus:

function bildwechsel(Bildname)
{
if(document.getElementById(Bildname).src.indexOf('Pfad/Minus.gif') == -1)
{
document.getElementById(Bildname).src = "Pfad/Minus.gif"
}
else
{
document.getElementById(Bildname).src = "Pfad/Plus.gif"
}
}
Aufgerufen wird sie hier:

<img src="Pfad/Plus.gif" id="grafik" name="grafik" onClick="bildwechsel(this.name)">

thanx, Manni

  1. Hellihello

    Hi Fachwelt,

    habe folgendes Problem:
    zwei Grafiken sollen vor Aufklappmenues auftauchen:

    • wenn zu und - wenn auf
      jeweils auf click soll + geändert werden zu - und beim Zuklappen wieder + angezeigt werden.
      An 1 Stelle hat mein js prima funktioniert, als ich es dann aber an mehreren Stellen eingebaut hatte verändert sich immer nur die Grafik an der 1. Stelle auf der Seite anstatt die Grafik an der Stelle, auf die geklickt wird.

    hat jemand eine Tipp für mich???
    so sieht meine Funktion jetzt aus:

    function bildwechsel(Bildname)
    {
    if(document.getElementById(Bildname).src.indexOf('Pfad/Minus.gif') == -1)
    {
    document.getElementById(Bildname).src = "Pfad/Minus.gif"
    }
    else
    {
    document.getElementById(Bildname).src = "Pfad/Plus.gif"
    }
    }
    Aufgerufen wird sie hier:

    <img src="Pfad/Plus.gif" id="grafik" name="grafik" onClick="bildwechsel(this.name)">

    damit würde dann immer das Bild mit der id "grafik" aufgerufen.

    Dank und Gruß,

    frankx

    --
    tryin to multitain  - Globus = Planet != Welt
    1. Hi Frankx,

      erst mal danke! - Hast du einen Tipp wie ich das zu umgehen kann?

      damit würde dann immer das Bild mit der id "grafik" aufgerufen.

      Dank und Gruß,

      Ciao,
      Manni

      1. Hellihello

        Hi Frankx,

        erst mal danke! - Hast du einen Tipp wie ich das zu umgehen kann?

        onClick="bildwechsel(this.name)"

        heißt, rufe die Funktion "bildwechsel" auf und übergib als Parameter "meinen" Namen. Das <img> muss also den name="xyz" haben und auch die id="xyz".

        Die Bilder dürfen nicht die selbe Id und denselben namen haben. Uu wäre auch (this.id) sinnvoller?

        Dank und Gruß,

        frankx

        --
        tryin to multitain  - Globus = Planet != Welt
        1. Hi Frankx,

          Die Bilder dürfen nicht die selbe Id und denselben namen haben. Uu wäre auch (this.id) sinnvoller?

          dann muss ich wohl nochmal neu überlegen, da die Grafiken an ziemlich vielen Stellen vor "Aufklapptext" liegen und immer neuer Name ziemlich aufwändig wäre....

          Eigentlich gibt es das Problem doch häufiger - ich finde irgendwie nix richtiges...

          Danke für's Aufklären!

          Ciao,
          Manni

          1. Hellihello

            dann muss ich wohl nochmal neu überlegen, da die Grafiken an ziemlich vielen Stellen vor "Aufklapptext" liegen und immer neuer Name ziemlich aufwändig wäre....

            Eigentlich gibt es das Problem doch häufiger - ich finde irgendwie nix richtiges...

            Vielleicht hab ichs auch nicht ganz kapiert. Du kannst aber auch recht unproblematisch per Javascript alle Images durchlaufen und ihnen diese Funktion "dynamisch" zuweisen. Gut wäre, wenn du das Problem "eindampfen" könntest, eine Testumgebung mit zB. drei Beispielbildern, dort das Problem lösen und dann die Analogie in die größere Umgebung ziehen.

            Dank und Gruß,

            frankx

            --
            tryin to multitain  - Globus = Planet != Welt
  2. Hallo Manni,

    Du könntest in der Funktion bildwechsel statt this.name einfach this übergeben. Dann hast Du das gesamte Image-Objekt in der Funktion zur Verfügung.

      
    function bildwechsel(bildobjekt) {  
        if(bildobjekt.src.indexOf('Pfad/Minus.gif') == -1) {  
            bildobjekt.src = "Pfad/Minus.gif";  
        } else {  
            bildobjekt.src = "Pfad/Plus.gif";  
        }  
    }  
    
    

    Gruß
    Olaf

  3. Lieber Manni,

    ich hatte da mal etwas gemacht, das Dir vielleicht von der Idee her weiterhilft: explorer-test

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)