Fotogalerie - automatisiert?

Den onclick sollst du erweitern, nicht den href! Und das div genhört da auch nicht rein!

So:
Code:
<a href="#"  onClick="zeig('images/29.12/PC290040.JPG','Bild 1',0); return false" id="bild1">
 
Also ich habe jetzt folgenden Code:

Code:
 function kommentar(text)
{
 document.getElementById("ausgabe").firstChild.nodeValue=text;
}  


 function zeig(was,komm,wo)
{ 
 var b = new Array();
 b[1] = new Image(); b[1].src = was;
 document.images[wo].src = b[1].src;
 kommentar(komm);
 }
 window.setTimeout(zeig(b[1].src, document.images[wo].src, "komm"),2000);
Aber irgendwie funktioniert das noch nicht :-(
Seht ihr den Fehler?

mfg
MF
 
Zuletzt bearbeitet:
Master Flexi hat gesagt.:
Aber es funktioniert doch so auch
Einen Diesel mit Super fahren funktioniert auch, trotzdem geht der Motor irgentwann kaputt.

Master Flexi hat gesagt.:
Seht ihr den Fehler?
Ja und du hättest ihn auch sehen sollen. Der erste Parameter von setTimeout() ist bei dir eine Funktion, er muss aber ein String sein. Demnach sollte das ganze so aussehen:
Code:
window.setTimeout("zeig('"+ b[1].src +"','"+ document.images[wo].src +"','"+  komm +"')",2000);
Das nächste Mal bitte genauer lesen! Es gibt übrigens in jedem Browser etwas wie eine "Javascript-Konsole" (heißt manchmal anders). Da steht genau drin, was für eine Art von Fehler in welcher Zeile zu finden ist. Mal reinschauen, bevor man hier fragt und sich ein bisschen schlau machen spart uns und dir Zeit.
 
Zuletzt bearbeitet:
Du hast recht, ich habe diesen Fehler auch entdeckt, korriegiert gehabt, allerdings funktionierte es trotzdem nicht, deshalb war ich mir nich tischer ob es daran liegt.

Ich habe es jetzt korriegiert, aber was muss ich sagen, es läuft immer noch nicht.

Viele Grüße

mf und vielen DANK!

P.S: bei der KOnsole steht dass "b" nicht definiert ist. Allerdings dachte ich dass ich es schon definiert habe oder sehe ich da was falsch?
 
Zuletzt bearbeitet:
Code:
 <html>
 <head>
 <link rel="stylesheet" type="text/css" href="css/css1024.css">

<script type="text/javascript">
<!--
function show(divid) {

document.getElementById("cat5").style.display="none";
document.getElementById("cat6").style.display="none";
document.getElementById("cat7").style.display="none";
document.getElementById(divid).style.display="inline";
}
//-->
</script>  

<SCRIPT  TYPE="TEXT/JAVASCRIPT">
 function kommentar(text)
{
 document.getElementById("ausgabe").firstChild.nodeValue=text;
}  


 function zeig(was,komm,wo)
{ 
 var b = new Array();
 b[1] = new Image(); b[1].src = was;
 document.images[wo].src = b[1].src;
 kommentar(komm);
 }
window.setTimeout("zeig('"+ b[1].src +"','"+ document.images[wo].src +"','"+  komm +"')",2000);

 </SCRIPT>

</head>
<body>
  <div id="bildg"><span class="Stil7">Das Haus </span><img id='1'src='images/29.12/PC290040.JPG' width="500" height="500">
   </div>
<div id="bild1"><a href="javascript:;return false;"  onClick="zeig('images/xxxxx.jpg','Bild 1',0)"> <img border="0" src='images/29.12/PC290040.JPG' width="100" height="100"></a></div>
<div id="bild2"><a href="javascript:;return false;"  onClick="zeig('images/29.12/PC290050.JPG','Bild 2',0)">
		<img border="0"src='images/29.12/PC290050.JPG' width="100" height="100"></a></div>
<div id="bild3"><a href="javascript:;return false;" onClick="zeig('images/29.12/PC290052.JPG','Bild 3',0)" >
		   <img border="0" src='images/29.12/PC290052.JPG' width="100" height="100"></a></div>
  <div id="bild4">	<a href="javascript:;return false;" onClick="zeig('images/29.12/PC290053.JPG','Bild 4',0)">
		  <img border="0" src='images/29.12/PC290053.JPG' width="100" height="100"></a></div>
          <div id="bild5">	
<a href="javascript:;return false;" onClick="zeig('images/PC260250.JPG','Bild 5',0)">
<img border="0" src='images/PC260250.JPG' width="100" height="100"></a></div>
</body>
</html>

Ich habe den Code ein bisschen ausgenommen, dann ist es einfacher für dich, denke ich mir mal, den Fehler zu finden.

Vielen Dank
mfg MF
 
Zuletzt bearbeitet:
Okay, da sind ne Menge Fehler drin. Der Wichtigste ist, dass "b" noch gar nicht exitiert, wenn du setTimeout aufrufst. Daher kannst du auch das src von b[1] nicht übergeben.

Außerdem musst du der Funktion explizit sagen, welches Bild sie aufrufen soll, du übergibt ihr nur leere Variablen.

Des weiteren kannst du das setTimeout() nicht einfach so starten, weil zu dem Zeitpunkt, wo es das erste Mal ausgeführt wird (und übrigens auch das einzige mal, weil es kein setInterval() ist) noch gar keine Bilder im Dokument gibt. Die stehen nämlich weiter unten im Source-Code und werden daher auch erst später geladen.
 
Zuletzt bearbeitet:
Ich habe das jetzt wie folgt gelöst ist ein bisschen komplizierter und vielleicht kann man im body jetzt noch aussortieren ?

Code:
<SCRIPT  TYPE="TEXT/JAVASCRIPT">
 function kommentar(text)
{
 document.getElementById("ausgabe").firstChild.nodeValue=text;
}  


 function zeig(was,komm,wo)
{ 
 var b = new Array();
 b[1] = new Image(); b[1].src = was;
 document.images[wo].src = b[1].src;
 kommentar(komm);
 }
var b = new Array();
b[0] = new Image(); b[0].src = "images/29.12/PC290040.JPG";
b[1] = new Image(); b[1].src = "images/29.12/PC290050.JPG";
b[2] = new Image(); b[2].src = "images/29.12/PC290052.JPG";
b[3] = new Image(); b[3].src = "images/29.12/PC290053.JPG";
b[4] = new Image(); b[4].src = "images/PC260250.JPG";
var i = 0;
function Animation () {
  if (i > 3)
    i = 0;
  document.images[0].src = b[i].src;
  i = i + 1;
  window.setTimeout("Animation()", 7000);
}

window.setTimeout("Animation()", 7000);

 </SCRIPT>

Viele Grüße
MF
P.S: Vielen Dank nochmal speziell an con-f-use
 
Zurück