document.variable geht nicht
peter
- javascript
Hallo!
Ich hänge an folgendem Problem nun schon 2 Tage:
<script>
var change = new Image();
change.src = "./images/picbox_dark.gif";
</script>
function changetext(pic) {
document.pic.src = change.src;
}
PHP-Code bei einem Bild:
while(list($filename, $title, $text) = mysql_fetch_row($sql)){
$picbox = "picbox".$i;
<img src="./images/picbox_light.gif" name="picbox".$i."" onMouseOver="changetext('".$picbox."')"">
$i++;
}
---------
Problem: In der Funktion changetext wird das "pic" nicht als Variable erkannt. Sie wird aber richtig übergeben, das habe ich getestet. Wenn ich zb. in die Funktion document.picbox1.src = change.src; schreibe dann funktioniert es. D.h. ganz einfach nur die Variable "pic" wird in dem document.pic.src = change.src; einfach nicht erkannt.
Was mache ich falsch??
Vielen Dank für die hoffentlich kommenden Lösungen,
LG Peter
Hallo,
onMouseOver="changetext('".$picbox."')"">
übergib hier doch mal *this* anstatt $picbox, also das Bild als Objekt statt als String. Und in der Funktion dann: *pic.src*
Gruß, Andreas
Hallo Andreas !
document.pic.src = change.src;
Du referenzierst hier nicht auf die Variable _pic_ sondern auf die Document Instanz _pic_. Genauer: Wenn Du ein Element innerhalb Deines Dokumentes mit der ID _pic_ hättest würde Deine Konstruktion Sinn ergeben, aber auch nicht funktionieren. Du musst dem Namen/ID _pic_ den Wert der Variable _pic_ die Du übergibst zuweisen.
Schönen Gruß
Afra
Vielen Dank für eure Hilfe!!
Ich kann jedoch nicht wirklich viel damit anfangen, wenn ich es richtig verstanden habe müsste es so gehen:
var pix = pic
document.pix.src = change.src;
Somit greife ich doch auf die variable pix zu, die pic 'enthält'. Geht aber trotzdem nicht. Ich verzweifle echt an diesem Problem :-(
Hallo Peter!
var pix = pic
document.pix.src = change.src;
Natürlich nicht. Du machst es schon wieder falsch. Du musst es irgendwie in der Form tun (Ich habe mir mal Deine Funktion geschnappt)
function changetext(pic) {
temp=eval("document."+pic+".src");
temp = change.src;
}
So kann das Script auf das Objekt zugreifen.
Schönen Gruß
Afra
Hi,
temp=eval("document."+pic+".src");
temp = change.src;
Hmm, erst ist temp dies, dann das? =;-o
So kann das Script auf das Objekt zugreifen.
(grusel) Gemäß dem guten alten "eval is evil":
temp=document.images[pic].src;
Gruß, Cybaer
Hallo Cybaer!
Ich wusste, dass das eval is evil kommen würde. Ich wollte ihm ja nur bei seiner sowieso etwas komsichen Übergabe helfen.
Dass man natürlich lieber auf Deine Art auf die Bilder zugreifen sollte ist klar. Kam mir beim Runtertippen in dem Moment nur nicht in den Sinn. Ich habe, glaube ich, seit Monaten keine Bildchenwechselscripte benutzt.
Schönen Gruß
Afra