よくわからないエラーが発生したので、助けを求めています。JavaScript を使用した単純なスライドショー コードがあります。問題のある行はわかっていますが、なぜクラッシュするのかわかりません。
これが完全なコードです。
var step=1;
var whichimage=1;
function slideit(){
//if browser does not support the image object, exit.
if (!document.images)
return;
document.images.slide.src=eval("image"+step+".src");
whichimage=step;
if (step==1)
{
changepic(step);
step++;
};
else if (step==2){
changepic(step);
step++;
};
else if (step==3) {
changepic(step);
step=1;
};
setTimeout("slideit()",1500);
}
slideit()
function slidelink(){
if (whichimage==1)
window.location="link1.htm"
else if (whichimage==2)
window.location="link2.htm"
else if (whichimage==3)
window.location="link3.htm"
}
function Pic1(){
if (!document.images)
return;
document.slide.src = image1.src;
step=1;
changepic(step);
}
function Pic2(){
if (!document.images)
return;
document.slide.src = image2.src;
step=2;
changepic(step);
}
function Pic3(){
if (!document.images)
return;
document.slide.src = image3.src;
step=3;
changepic(step);
}
function changepic (x){
if (x==1){
document.getElementById("temp1").setAttribute("class", "slideshowminithumb2");
document.getElementById("temp2").setAttribute("class", "slideshowminithumb");
document.getElementById("temp3").setAttribute("class", "slideshowminithumb");
}
if(x==2){
document.getElementById("temp2").setAttribute("class", "slideshowminithumb2");
document.getElementById("temp1").setAttribute("class", "slideshowminithumb");
document.getElementById("temp3").setAttribute("class", "slideshowminithumb");
}
if(x==3){
document.getElementById("temp3").setAttribute("class", "slideshowminithumb2");
document.getElementById("temp1").setAttribute("class", "slideshowminithumb");
document.getElementById("temp2").setAttribute("class", "slideshowminithumb");
}
}
次の行でエラーが発生することはわかっています。
if (step==1)
{
changepic(step); /** Here! **/
step++;
};
行を削除するとスライドショースクリプトが機能するため、これはわかっていますが、ステップ1でクラスが変更されるように機能する必要があります。