我在练习做一个网页的时候,做了一个滚动条。内有若干小图片在内滚动,点击滚动条里的图片,触发以下两个事件:
(1)在一个大div(bigcover)的img标记中显示滚动条点击的小图片
(2)在另外一个
这时出现问题:
(1)首次点击滚动条内的小图,图片可以切换,但是
(2)再点击该小图,
(3)滚动条内,bigcover内的图片默认为a,首次点击图片b,切换成功。再首次点击图片c,图片切换成功,这时再次点击图片b,图片不切换。无论多少次都一样。
简单的说就是:文本内容框第一次点击没反应,第二次才正常,图片框却只有第一次点击才有反应。后面再点击就不切换了。
问题分析:
(1)图片滚动:原本是13张,我设置为26张,然后跳帧处理——不过这应该没关系
(2)我删除了调用ajax函数部分的语句后,图片切换正常
(3)经检测,第二次点击小图片时,ajax生效,但是并没有发生onclick事件。所以图片还是原来的。
代码如下
functionajax(obj,url, fnSucc, fnFaild){
obj.οnclick=function(){var oAjax=null;if(window.XMLHttpRequest){
oAjax=newXMLHttpRequest();
}else{
oAjax=new ActiveXObject("Microsoft.XMLHTTP");
};
oAjax.open('GET',url,true);
oAjax.send();
oAjax.onreadystatechange=function(){if(oAjax.readyState==4){if(oAjax.status==200){
fnSucc(oAjax.responseText);
}else{if(fnFaild){
fnFaild();
}
}
}
}
}
}//以上是ajax函数
functionclickImg(){var oScrollUl=document.getElementById('scroll_ul');var aScrollImg=oScrollUl.getElementsByTagName('img');var oBigcover=document.getElementById('big_cover');var oCoverImg=oBigcover.getElementsByTagName('img')[0];var oIntro=document.getElementById('intro');for(i=0;i
aScrollImg[i].index=i+1;
aScrollImg[i].οnclick=function(){if(this.index>aScrollImg.length/2){
this.index=this.index-aScrollImg.length/2;
}
oCoverImg.src=this.src;
ajax(this,'service/'+this.index+'.txt?t='+new Date().getTime(),function(str){
oIntro.innerHTML=str;
});
}
}
}//以上是点击事件函数