为了账号安全,请及时绑定邮箱和手机立即绑定

为何点击a属性的文字,图片会改变?

为何点击a属性的文字,图片会改变?

梵蒂冈之花 2018-08-26 10:48:25
<!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 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

n是一个全局变量。

changePic并没有修改图片,他只是修改了n

change里面,逻辑是:将图片的编号替换为n,然后将n修改为下一次的编号。
那么在下一个change执行之前呢,changePic提前修改了n的值,导致change将点击的编号展示了出来。
这个n就是点击时传入的。

所以这是一个全局变量的运用问题。changePic没有改图片,只是改了一个变量,这个变量用于描述下一张图片的编号。

点击也没有立即换图,换图还是等到了Interval的两秒到了,才通过change换图


查看完整回答
反对 回复 2018-08-27
  • 1 回答
  • 0 关注
  • 872 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信