<!DOCTYPE html><html lang="en"><head>
<meta charset="UTF-8">
<title></title>
<script>
var n = 1; function changePic(m){ return n = m;
} function change(){ var myImg = document.getElementsByTagName("img")[0];
myImg.src = "images/0" + n + ".jpg"; if(n<5)n++; else n=1;
}
</script></head><body onload="setInterval(change,2000);">
<img src="images/01.jpg" alt="" width="200">
<div>
<a href="#" onclick="changePic(1)">屋檐</a>
<a href="#" onclick="changePic(2)">旅途</a>
<a href="#" onclick="changePic(3)">红墙</a>
<a href="#" onclick="changePic(4)">梅花</a>
<a href="#" onclick="changePic(5)">宫殿</a>
</div></body></html>上面的代码很简单,图片每隔2秒,换一次,这个我理解。问题是,当我点击某个a 的属性,比如旅途,图片为何会跳转到旅游这个图片呢?changePic仅仅返回了一个数字 2 ,并没有看出会改图片?change 和 changePic 是两个函数,changePic也无法调用change函数哈?
1 回答
![?](http://img1.sycdn.imooc.com/54584cde0001d19202200220-100-100.jpg)
万千封印
TA贡献1891条经验 获得超3个赞
n
是一个全局变量。
changePic
并没有修改图片,他只是修改了n
。
在change
里面,逻辑是:将图片的编号替换为n,然后将n修改为下一次的编号。
那么在下一个change
执行之前呢,changePic
提前修改了n的值,导致change
将点击的编号展示了出来。
这个n就是点击时传入的。
所以这是一个全局变量的运用问题。changePic
没有改图片,只是改了一个变量,这个变量用于描述下一张图片的编号。
点击也没有立即换图,换图还是等到了Interval
的两秒到了,才通过change
换图
添加回答
举报
0/150
提交
取消