bildwechsel klappt nur bei einer von x ident. grafiken
papermoon
- javascript
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
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
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
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
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
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
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
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
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
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
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
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