rollover funktion/dynamische variablen
marc
- javascript
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
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
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
hallo wahsaga!
vielen dank für die infos, jetzt sollte ich das problem lösen können!
gruss
marc
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
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
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...
alert(window.variablenName)
müsste es wohl noch heissen...
alert(window[variablenName])
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