script bezieht sich nur auf das erste bild
darkside
- javascript
hi leute,
ich habe ein script umgeschrieben, welches per click
bilder austauscht. es funktioniert aber nur wenn in der html seite
kein anderes bild an ertser stelle ist. kann mir jemand möglichst genau sagen warum? danke und grüße
<html>
<head>
<title>bildtausch</title>
<script type="text/javascript">
<!--
var namen=new Array("0.jpg","1.jpg","2.jpg","3.jpg","4.jpg");
var bilder=new Array();
function lade()
{
var i;
for (i=0;i<5;i++)
{
bilder[i]=new Image();
bilder[i].src=namen[i];
}
}
function zeige(nr)
{
document.images[0].src=bilder[nr].src;
}
//-->
</script>
</head>
<body onLoad="lade();">
<img src="0.jpg" width="200" height="200"><br>
<br>
<input type="image" src="001.jpg" onClick="zeige(0);return false"><br>
<br>
<input type="image" src="002.jpg" onClick="zeige(1);return false"><br>
<br>
<input type="image" src="003.jpg" onClick="zeige(2);return false"><br>
<br>
<input type="image" src="004.jpg" onClick="zeige(3);return false"><br>
<br>
<input type="image" src="005.jpg" onClick="zeige(4);return false"><br>
</body>
</html>
Hi darkside,
Logisch.
Du sprichst die Bilder per Vorkommensindex an, damit erreichst du mit der Nummer [0] immer das erste, auf der Seite vorkommende, Bild, da Javascript bei der Zählung mit 0 beginnt.
Wenn vorher noch andere Bilder vorkommen, musst du eben später zu zählen beginnen. Sind zwei Bilder vor dem Bild, das vom Script angesprochen werden soll, musst du dieses eben mit der Indexnummer [2] ansprechen, weil die Zählung mit 0 beginnt und [2] das dritte vorkommende Bild ist.
Gruß
Kurt
hi kurt,
vielen dank das mit der nummerrieung hab ich verstanden
und bei einfachem seitenaufbau auch umgesetzt.
wenn´s aber nun sehr komplex wird und andere dinge
wie rollovers vornedran stehn blick auf anhieb
nicht mehr durch.
weißt du wie ich es richtig bennen müsste um die
nummerrierung zu umgehen?
danke und viele grüße alex
Hi darkside,
hi kurt,
vielen dank das mit der nummerrieung hab ich verstanden
und bei einfachem seitenaufbau auch umgesetzt.
wenn´s aber nun sehr komplex wird und andere dinge
wie rollovers vornedran stehn blick auf anhieb
nicht mehr durch.
weißt du wie ich es richtig bennen müsste um die
nummerrierung zu umgehen?
danke und viele grüße alex
Warum löst du das nicht mit der DOM-Methode?
http://selfhtml.teamone.de/javascript/objekte/document.htm#get_element_by_id, wobei ich deine Methode durchaus als angemessen und vertretbar ansehe.
Bei letzterer musst du halt jedem Rolloverbild eine ID verpassen, was eigentlich auch nicht wirklich sinnvoller und besser ist, als deine Lösung.
Einzig die Namensmethode wäre für dein Anliegen eventuell besser geeignet, wobei du aber auch hier mit ndexnummern arbeiten musst, da ein Name per Seite mehrfach vergeben sein kann.
http://selfhtml.teamone.de/javascript/objekte/document.htm#get_element_by_name
Allerdings kannst du den Index auf 0 lassen, wenn du jedem Inputfeld einen eigenen Namen gibst.
An deiner Stelle würde ich es so lassen und einfach mit der "suchen"-Funktion den Quelltext der Seite nach img durchsuchen, welche vor deinen Inputfeldern liegen, dann kannst du bei der Indexierung kaum noch Fehler machen. Ausserdem fällt sowas ja sofort auf und die Änderung danach ist ja ein Klacks.
Gruß
Kurt
Hi Kurt,
vielen dank du hast mir wirklich sehr geholfen
gruß alex
Hi darkside,
Hi Kurt,
vielen dank du hast mir wirklich sehr geholfen
Trotz allem finde ich es besser, wenn du mit dem Image-Objekt arbeitest, weil das einfach mehr Browser verstehen.
DOM ist noch relativ neu, da steigen die älteren Browser aus.
Mit dem Image-Objekt kannst du durchaus auch mit Namen arbeiten: http://selfhtml.teamone.de/javascript/objekte/images.htm#allgemeines
Gruß
Kurt
hallöchen nochmal,
sorry das doppelposting war wirklich ein peinliches versehen...
kann das jemand rausnehmen :-(
Hi darkside,
hallöchen nochmal,
sorry das doppelposting war wirklich ein peinliches versehen...
kann das jemand rausnehmen :-(
Nee, jetzt nicht mehr, da du hier ja konstruktive Antworten erhalten hast.
Ich habe es leider auch zu spät gemerkt.
Gruß
Kurt