代码如下,为什么只能循环一张图片,想实现的效果是点击图片显示下一张图片,l=arr.length已读出是5,但是只往下循环显示一条,菜鸟对代码不熟,求赐教
<%if rs("img")<>"" then
img=rs("img")
myimg=Split(img,"|")
arrnum=Ubound(myimg)
s= join(myimg,",")
%>
<SCRIPT LANGUAGE=javascript>
function changeimg(obj,src){
var str='<%=s%>',arr=str.split(",")
var l=arr.length
for(var i=0;i<=l-1;i++){
obj.src=arr[i]
}
}
</SCRIPT>
<img id="img" src="..<%=myimg(0)%>" onclick=changeimg(this,this.src) />
<%end if %>
<%if rs("img")<>"" then
img=rs("img")
myimg=Split(img,"|")
arrnum=Ubound(myimg)
s= join(myimg,",")
%>
<SCRIPT LANGUAGE=javascript>
function changeimg(obj,src){
var str='<%=s%>',arr=str.split(",")
var l=arr.length
for(var i=0;i<=l-1;i++){
obj.src=arr[i]
}
}
</SCRIPT>
<img id="img" src="..<%=myimg(0)%>" onclick=changeimg(this,this.src) />
<%end if %>
alert(str);看看是啥
var str='<%=s%>',arr=str.split(",");
var l=arr.length;
var nextIdx = -1;
for(var i=0;i<l;i++){
if(src == arr[i]){
nextIdx = i + 1;
}
if(nextIdx == i){
obj.src=arr[i]
}
}
if (nextIdx == l){
alert("sorry,this is the last image.");
}
}
var i=0;
function changeimg(obj,src){
var str='<%=s%>',arr=str.split(",")
var l=arr.length
if(i<=0||i>=l){
i=0;
}
obj.src=arr[i];
}
</SCRIPT>
回2楼,没明白,对javascript只是初偿,还没什么深入了解,什么叫有个全局的i,i++不就是往下循环吗
回shuixiya1999,唉,我知道我菜,这个做法肯定有问题,不然不就实现了,但是到底带怎么做呢,几乎完全没学过javascript,这个方法也是看了一晚上的javascript加上别人的例子才好不容易掰出来的
function changeimg(obj,src){
var str='<%=s%>',arr=str.split(",")
var l=arr.length
for(var i=0;i<=l-1;i++){
obj.src=arr[i]
}
}首先你得确定str.split(",")得到的arr是有东西的.不然没法循环。另外,你使用for循环控制点击按钮显示下一张是不行的,你这样写得到的永远是arr最后的长度值(假设arr.length长度为5,得到的arr[i]=arr[5]).这样做点击显示下一张是不合理的!
function changeimg(a,b,src){
var str='<%=s%>';
var arr=str.split(",");
var OnclickNum=0;
if(OnclickNum==arr.length)
OnclickNum=0;
obj.src=arr[OnclickNum++%arr.length];}这样就能重复,但你得保证arr不是空数组,还有obj是img元素,也就是var obj=document.getElementId("img");
function changeimg(a,b,src){
var str='<%=s%>';
var arr=str.split(",");
if(OnclickNum==arr.length)
OnclickNum=0;
obj.src=arr[OnclickNum++%arr.length];}OnclickNum应该写在函数外面,楼上的代码敲快了,没考虑到哈!
这里,你只给了它一个图片地址嘛。下次点击的时候也只是一个图片地址呀
<body>
<form id="form1" runat="server">
<div id="text" class="text">
<img id="img" src="image/001.jpg" onclick="clickImg(this);" />
</div>
</form>
</body>
var Num=0;
function clickImg(obj){
var arr=["image/001.jpg","image/002.jpg","image/003.jpg","image/004.jpg"];
if(Num==arr.length)
Num=0;
obj.src=arr[Num++%arr.length];
}我这样已经测试通过,无限重复循环..你试着看看你错在哪里!
同时感谢楼上的几位
是的,发现了,所以把num初始改成1了,刚好就往下移一个,谢谢,学到不少,继续研究