papermoon: bildwechsel klappt nur bei einer von x ident. grafiken

hallo, an alle,

ich nutze das folgende script (extern) für einen bildwechsel:

top_blau = new Image();
top_blau.src = "../pics/top_blau.gif";
top_rot = new Image();
top_rot.src = "../pics/top_rot.gif";

function Bildwechsel(imgID,imgObjName) {
window.document.images[imgID].src = eval(imgObjName + ".src")
}

und so rufe ich die funktion auf:

<a href="#oben" onMouseOver="Bildwechsel('top_blau','top_rot')" onMouseOut="Bildwechsel('top_blau','top_blau')">
<img name="top_blau" src="../pics/top_blau.gif" height="16" width="16" border="0" alt="hoch" /></a>

mein problem:
verwende ich den identischen "auruf" mehrmals auf einer seite, dann funktioniert der
bildwechsel nur beim ersten link, alle folgenden (identischen) links reagieren zwar
auch, lösen den bildwechsel allerdings beim ersten link aus und verharren, selbst, in
ihrem standard-zustand.

meine frage:
wie erreiche ich, dass jeder einzelne link bei "onMouseOver" entsprechend reagiert
und die anderen (identischen) "warten bis sie angesprochen werden"?

viele grüsse vom papermoon

  1. Hi,

    verwende ich den identischen "auruf" mehrmals auf einer seite, dann funktioniert der
    bildwechsel nur beim ersten link,

    das liegt vielleicht daran, dass es nur ein Bild mit dem Namen "top_blau" geben kann.

    lösen den bildwechsel allerdings beim ersten link aus

    Interessant. Bei einem anderen Browser ist es vielleicht der letzte.

    wie erreiche ich, dass jeder einzelne link bei "onMouseOver" entsprechend reagiert
    und die anderen (identischen) "warten bis sie angesprochen werden"?

    Benutze eindeutige Namen.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. hi Cheatah,

      Benutze eindeutige Namen.

      das wollte ich eigentlich vermeiden, da die grafik zig-mal vorkommt
      und die anzahl mit jeder weiteren seite steigt.

      dennoch - vielen danke, für deine antwort.

      grüsse vom papermoon

      1. Hi,

        Benutze eindeutige Namen.
        das wollte ich eigentlich vermeiden,

        zwingend Notwendiges zu vermeiden ist nicht wirklich sinnvoll.

        da die grafik zig-mal vorkommt
        und die anzahl mit jeder weiteren seite steigt.

        Gegenfrage: Interessiert Dich überhaupt irgendein Name, oder meinst Du immer die aktuelle Grafik, also 'this'?

        Cheatah

        --
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. hi Cheatah,

          zwingend Notwendiges zu vermeiden ist nicht wirklich sinnvoll.

          dagegen gibt es nichts einzuwenden. die frage ist, ob es für das geschilderte vorhaben
          eventuell eine einfacherre/funktionierende lösung gibt, auf die ich - mangels kenntnis -
          nicht komme.

          Gegenfrage: Interessiert Dich überhaupt irgendein Name, oder meinst Du immer die aktuelle Grafik, also 'this'?

          die grafik dient, jediglich dazu, den nutzern, auf einer umfangreichen seite, den sprung
          zum seitenanfang zu ermöglichen (auch ohne tastenkombination).
          die seite besteht aus einer tabelle einschl. inhalt und zig zeilen.
          jeder "inhaltszeile" folgt eine zeile mit entsprechender grafik (sprungziel=oben), wobei
          es natürlich immer um die gleiche grafik handelt - mal die erste, mal die achte...- je
          nachdem, an welcher stelle sich der nutzer gerade befindet.

          kann ich in diesem zusammenhang etwas mit deiner "this-theorie" anfangen und wenn ja, wie?

          viele grüsse vom papermoon

          1. Hi,

            Gegenfrage: Interessiert Dich überhaupt irgendein Name, oder meinst Du immer die aktuelle Grafik, also 'this'?
            die grafik dient [...]

            das hat leider nichts mit dem zu tun, was Du mit JavaScript anstellst.

            kann ich in diesem zusammenhang etwas mit deiner "this-theorie" anfangen und wenn ja, wie?

            Keine Ahnung, da Du meine Frage nicht beantwortet hast. Du versuchst, zu einem Zeitpunkt (Ereignis) mit JavaScript "irgendwas" durchzuführen - aber was dieses "irgendwas" ist, ist mir nicht klar. Wenn es sich immer nur um Objekte dreht, die im direkten Zusammenhang mit dem Ereignis stehen, ist 'this' auf jeden Fall einen Blick wert.

            Cheatah

            --
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. hi Cheatah,

              du zitierst dich selbst:

              Gegenfrage: Interessiert Dich überhaupt irgendein Name, oder meinst Du immer die aktuelle Grafik, also 'this'?
              die grafik dient [...]

              und gibst darauf diese antwort:

              das hat leider nichts mit dem zu tun, was Du mit JavaScript anstellst.

              was mich nicht wirklich weiter bringt - sorry.
              ich denke, dass ich mein problem verständlich erklärt habe und dass klar wird, worum
              es geht und das es durchaus mit javascript zu tun hat.

              kann ich in diesem zusammenhang etwas mit deiner "this-theorie" anfangen und wenn ja, wie?

              Keine Ahnung, da Du meine Frage nicht beantwortet hast. Du versuchst, zu einem Zeitpunkt (Ereignis) mit JavaScript "irgendwas" durchzuführen - aber was dieses "irgendwas" ist, ist mir nicht klar. Wenn es sich immer nur um Objekte dreht, die im direkten Zusammenhang mit dem Ereignis stehen, ist 'this' auf jeden Fall einen Blick wert.

              zu deiner frage: siehe oben, bzw. vorheriges posting.
              "irgendwas" = bildwechsel, wie bereits erwähnt.
              "objekte" = grafik (immer die gleiche, an versch. stellen), wie bereits erwähnt.
              "die im direkten Zusammenhang mit dem Ereignis stehen" = onMouseOver u. onMouseOut wie
              bereits erwähnt.

              "ist 'this' auf jeden Fall einen Blick wert", danke ich werde einen blick riskieren.

              nochmals - danke, für deine mühe.

              grüsse vom papermoon

              1. hi,

                "objekte" = grafik (immer die gleiche, an versch. stellen), wie bereits erwähnt.

                damit lässt du trotzdem immer noch offen, wie

                immer die gleiche, an versch. stellen

                zu deuten ist.

                sollen sich jetzt beim überfahren eines dieser bilder alle anderen mit ändern, oder ...?

                gruss,
                wahsaga

                1. hi wahsaga,

                  sollen sich jetzt beim überfahren eines dieser bilder alle anderen mit ändern, oder ...?

                  meine frage aus dem ersten posting:
                  wie erreiche ich, dass jeder einzelne link bei "onMouseOver" entsprechend reagiert
                  und die anderen (identischen) "warten bis sie angesprochen werden"?

                  das scheint zu missverständnissen zu führen -, deshalb:

                  nein, es sollen sich nicht alle grafiken bei onMouseOver einer grafik ändern.
                  nur die grafik, bei der das ereignis eintritt.

                  wie das script arbeitet ist klar. dass das problem darin besteht, dass ich immer den
                  gleichen namen (name="top_blau") verwende leuchtet mir auch ein.
                  das script arbeitet die grafiken ab - 0,1,2... (id) und erzeugt aus dem objektnamen
                  einen string, weshalb die erste grafik (0) funktioniert und bei überfahren der folgenden
                  grafiken, immer bezug auf die erste grafik genommen wird.
                  hätte jede grafik einen eigenen (anderen) namen, dann hätte ich das problem nicht, dafür
                  aber eine menge arbeit.

                  deshalb habe ich mich nach einer möglichkeit erkundigt, die es mir erlaubt, ein und
                  die selbe grafik zig-mal zu verwenden, aber jeweils einzeln anzusprechen, ohne das
                  die anderen grafiken "wind davon bekommen".

                  viele grüsse vom papermoon

    2. Hi,

      das liegt vielleicht daran, dass es nur ein Bild mit dem Namen "top_blau" geben kann.

      Ist das irgendwo festgelegt, daß das NAME-Attribut bei Grafiken eindeutig zu sein hat? AFAIR muß nur die ID eindeutig sein?!

      Gruß, Cybaer

      1. Hi,

        Ist das irgendwo festgelegt, daß das NAME-Attribut bei Grafiken eindeutig zu sein hat? AFAIR muß nur die ID eindeutig sein?!

        höchstens indirekt dadurch, dass bei gleichzeitiger Verwendung von NAME und ID diese identisch (und ID eindeutig) sein müssen. Es geht hier aber primär nicht um HTML, sondern um JavaScript; und document.images[name] ist nun mal keine Collection.

        Cheatah

        --
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hi,

          höchstens indirekt dadurch, dass bei gleichzeitiger Verwendung von NAME und ID diese identisch (und ID eindeutig) sein müssen.

          Warum sollten sie? Ich habe, auch in JavaScript, noch keine Probleme gehabt bei der (HTML-konformen) Verwendung von gleichen NAMEs und eindeutigen IDs.

          Denn wenn man das bewußt macht ...

          Es geht hier aber primär nicht um HTML, sondern um JavaScript; und document.images[name] ist nun mal keine Collection.

          ... dann geht man eben document.images[i].name durch und überprüft auf den gewünschten Namen.

          Gruß, Cybaer