Stefanie Spliethoff: img-name als Variable nutzen

Hallo,

habe folgendes Problem:
-----------------
 function showstoff(stoffauswahl)
  {
  document[tierstoff].src = mobilestoff[stoffauswahl];
  return;
  }

//-->

function showpalette(trstff)
  {
  if (trstff = 1)
   tierstoff = "s_stoff5";
   if (trstff =2)
   tierstoff = "s_stoff4";
  if (document.getElementById)
    document.getElementById("musterpaket").style.visibility = "visible";
  }
-----------------

beim anklicken eines Buttons mit funktion showpalette öffnet sich eine Palette mit 10 weiteren Buttons, die man anklickt und dabei die Funktion showstoff auslöst. In Funktion showpalette soll eine Grafik definiert werden (tierstoff) die dann geändert werden soll mit der Funktion showstoff...

Freue mich über jeden Tipp

Stefan

  1. document[tierstoff].src = mobilestoff[stoffauswahl];

    So wird das wohl nichts, schau Dir mal das images-Objekt näher an, dort insbesondere die Möglichkeiten, die Bilder anzusprechen.

    Ansonsten beherzige bitte die Tipps für Fragende, um detailliertere und weiterführende Hilfe zu bekommen.

    Siechfred

    --
    Wir vom Moderatorenteam haben keinerlei Humor, von dem wir wüssten.
    1. sorry, ich habe mir das alles angeschaut - vielleicht brett vorm Kopf... Wie man Bilder anspricht habe ich auch schon gesehen...... finde aber keine Lösung..vielleicht denke ich ja verkehrt.

      noch ein versuch ??

      habe an folgendes lange rumprobiert:

      tierstoff = new Array(5);
      tierstoff[0]="s_stoff1"
      tierstoff[1]="s_stoff2"
      tierstoff[2]="s_stoff3"
      tierstoff[3]="s_stoff4"
      tierstoff[4]="s_stoff5"

      function showstoff(stoffauswahl)
        {
        document[tierstoff].src = mobilestoff[stoffauswahl];
        return;
        }

      //-->

      function showpalette()
        {
        tierstoff = "s_stoff5";
        if (document.getElementById)
          document.getElementById("musterpaket").style.visibility = "visible";
        }
      ---------------
      so funktioniert es - das new Array wird aber hier nicht beachtet. - Problem bezieht sich nur auf "tierstoff".
      wenn ich die Variable tierstoff in showpalette definiere funktioniert es. da ich aber gerne die variable durch showpallette (x) definieren möchte - das klappt nicht.

      vielleicht bin ich ja total auf den holzweg oder unverständlich...

      diesen versuch geb ich mir noch.

      danke für die genommene zeit.

      gruss

      1. Mahlzeit,

        tierstoff = new Array(5);
        tierstoff[0]="s_stoff1"
        tierstoff[1]="s_stoff2"
        tierstoff[2]="s_stoff3"
        tierstoff[3]="s_stoff4"
        tierstoff[4]="s_stoff5"

        function showstoff(stoffauswahl)
          {
          document[tierstoff].src = mobilestoff[stoffauswahl];
          return;
          }

        Die Grafiken heißen in der Tat "s_stoff1", "s_stoff2" usw.? Ohne Dateiendung (*)?

        vielleicht bin ich ja total auf den holzweg oder unverständlich...

        Letzteres. Was GENAU willst du eigentlich? :-)

        MfG,
        EKKi

        (*) Ich HASSE MICROS~1 dafür, dass sie seit dem unsäglichen Win95 die Dateiendungen standardmäßig ausblenden. :-(

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. ..Ok - unverständlich...

          jetzt noch mal ganz genau, wenn ihr noch Geduld mit mir habt....

          wie gehabt mein Code (kleine Änderung vorgenommen, aber ohne Erfolg):
          --------------
          tierstoff = new Array(5);
          tierstoff[0]="s_stoff1"
          tierstoff[1]="s_stoff2"
          tierstoff[2]="s_stoff3"
          tierstoff[3]="s_stoff4"
          tierstoff[4]="s_stoff5"

          function showstoff(stoffauswahl)
            {
            document.tierstoff[trstff].name = mobilestoff[stoffauswahl];
            return;
            }

          //-->

          function showpalette(trstff)
            {
            if (document.getElementById)
              document.getElementById("musterpaket").style.visibility = "visible";
            }
            -------------

          Ein Button ruft die Funktion showpalette auf: es öffnet sich eine Palette mit weiteren 10 Buttons. Klickt man auf diesen "Paletten"-Button, wird die Funktion Showstoff aufgerufen, somit kann man ein bestimmtes Objekt mit einem bestimmten Muster versehen.
          5 verschiedene Objekte soll man mit verschiedenen Muster versehen können. Darum:
          tierstoff = new Array(5);
          tierstoff[0]="s_stoff1"
          tierstoff[1]="s_stoff2"
          tierstoff[2]="s_stoff3"
          tierstoff[3]="s_stoff4"
          tierstoff[4]="s_stoff5"
          Es gibt 5 Buttons die jeweils die Funktion showpalette aufrufen und somit könnte man hier ja bestimmen welche "Grafik" mit dem bestimmten namen, "s_stoff4, ausgetauscht werden soll. showpallette (4)
          "s_stoff1" ist jeweils im img Tag als name definiert. Dieser soll ausgewählt werden, damit man die dazugehörende Grafik ausgetauscht wird.
          Das austauschen der Grafik ist kein Problem.

          Kurz:

          wie bekomme ich es hin, das die Zahl in den Klammern der Funktion showpalette (), die es auf 5 Button gibt in der Funktion Showstoff, in der Zeile
          ---
          document.tierstoff[trstff].name = mobilestoff[stoffauswahl];
          ---
          den Namen der Grafik tierstoff[trstff], also z.B. "s_stoff4" bestimmt.

          Besser geht glaub ich nicht :-)

          Freu mich über jeglichen Tip.

          Gruß

          1. es funktioniert! ich hab mir alles nochmal genau angeschaut - trotzdem danke für eure Zeit! Oft hilft Fragen einfach auch schon weiter und man kommt selber aus seiner eigenen Gedankenschleife:

            function showstoff(stoffauswahl)
              {
               document[tstoff].src = mobilestoff[stoffauswahl];
              return;
              }

            function showpalette(trstff)
              {

            if (document.getElementById)
                document.getElementById("musterpaket").style.visibility = "visible";
                tstoff = tierstoff[trstff];
                return;
              }

            Wens interessiert: ich habe eine zusätzliche Variable hinzugefügt und diese dann in der Funktion showpalette mit Hilfe der in Klammern stehenden Zahl genau definiert und dann  in der Funktion showstoff wieder abgerufen...

            Gruß