marc: rollover funktion/dynamische variablen

hallo
gibt es eine möglichkeit dynamisch variablen zu generieren?
ich stehe vor folgendem problem (und auf dem schlauch...):

ein div-hintergrundbild wird bei mouseover und mouseout mit dieser funktion gewechselt:

function loadImage(div,IMAGE){
document.getElementById(div).style.backgroundImage='url('+IMAGE+')';
}

nun bin ich daran, eine weitere funktion zu schreiben, die bei "onclick" aufgerufen wird und eine variable mit dem namen von "IMAGE" schreibt und dieser den wert 1 gibt.
die funktion loadImage möchte ich dann so anpassen, dass die variable "IMAGE" zuerst geprüft wird und wenn sie 1 ist, ein anderes bild geladen wird.

wenn also auf div geklickt wurde soll ein anderes rollover-bild geladen werden, solange bis die variable IMAGE wieder auf 0 gesetzt wurde.

da ich viele solcher divs habe, möchte ich nur eine funktion schreiben...

hoffe das war einigermassen verständlich....
kann mir jemand auf die sprünge helfen?

dank und gruss
marc

  1. noch etwas präziser, das problem ist diese funktion:

    function changeVar(IMAGE){
    var ( IMAGE) = 1;
    }

    so funktioniert das nicht. kann ich eine variable auf irgend so eine art erzeugen?

    gruss marc

  2. hi,

    gibt es eine möglichkeit dynamisch variablen zu generieren?

    Alle Variablen sind in Javascript in Wirklichkeit Objekteigenschaften.
    Variablen im globalen Gültigkeitsbereich sind Eigenschaften von window.

    var xyz = 15;
    ist also das gleiche wie
    window.xyz = 15;
    ist das gleiche wie
    window["xyz"] = 15;

    Bei letzterer Schreibweise kann der Name xyz natürlich auch selbst als Inhalt einer Variablen angegeben werden:

    var variablenName = "xyz";
    window[variablenName] = 15;
    alert(xyz);

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. hallo wahsaga!
      vielen dank für die infos, jetzt sollte ich das problem lösen können!

      gruss
      marc

    2. nun bin ich bei der if-schleife gestolpert...:

      var variablenName = "IMAGE";
      function changeVar(IMAGE){
          if (window.IMAGE = 1){
          window[variablenName] = 0;
          alert(window.IMAGE)
          }
          else {
          window[variablenName] = 1;
          alert(window.IMAGE)
          }
      }

      ...beim ersten mal klicken window.IMAGE = 1, falls bereits 1 dann window.IMAGE = 0.
       if (window.IMAGE = 1){
      kann ich vermutlich nicht schreiben. jedenfalls wird so immer nur 0 ausgegeben.

      any help?

      gruss marc

      1. hi,

        nun bin ich bei der if-schleife gestolpert...:

        Wie kannst du über etwas stolpern, was es gar nicht gibt?

        If ist kein Schleifenkonstrukt.

        if (window.IMAGE = 1){
        kann ich vermutlich nicht schreiben.

        Damit würdest du auf eine Eigenschaft des window-Objektes namens IMAGE zugreifen - existiert eine solche?

        Wofür haben wir uns denn gerade die Syntax window[variablenName] angeschaut ...?

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. hallo wahsaga
          natürlich das kann ja nicht funktionieren...
          nun habe ich
          var variablenName = "IMAGE";
          function changeVar(IMAGE){
              if (window.variablenName = 1){
              window[variablenName] = 0;
              alert(window.IMAGE)
              }
              else {
              window[variablenName] = 1;
              alert(window.IMAGE)
              }
          }

          geschrieben. aber ich mache da offenbar einen überlegungsfehler...

          1. alert(window.variablenName)
            müsste es wohl noch heissen...

            1. alert(window[variablenName])

          2. Moin

            if (window.variablenName = 1){
            aber ich mache da offenbar einen überlegungsfehler...

            was auch immer du da mit der 1 vergleichst, dazu brauchst du == (Vergleichsoperator)

            Gruß
            rfb

            --
            Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.
            (Galileo Galilei)