为什么不能直接用for循环的变量m?
for (var m = 0; m < menuItenms.length; m++) { menuItenms[m].setAttribute("data-index",m); menuItenms[m].onmouseover=function(){ submenu.className="sub-menu"; var idx =this.getAttribute("data-index"); // var idx =m; //遍历所有的子菜单,隐藏掉 for (var j = 0; j < innerbox.length; j++) { innerbox[j].style.display='none'; menuItenms[j].style.background='none'; } menuItenms[idx].style.background='rgba(0,0,0,0.1)'; innerbox[idx].style.display='block'; }
如代码,idx改为m不行这是为什么,不是都一样吗?
3
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕阿莹
2019-04-01 10:31:02
不同的呦,当function函数内部引用外部一个可变数值时,其引用的是这个可变数值的最终值
老师在3-6 点击圆点切换图片(1)的4分45秒到5分46秒老师有讲到哦
换个例子讲,如果没有在function中定义变量,而是在function外定变量,并不是触发这个function的时候才去对这个变量进行改变,而是在加载页面的时候,这个外部的变量就已经执行完了。
这里简单写了个案例:
<!DOCTYPE html > <html> <head> <meta charset=""> <meta http-equiv="Content-Type" content="text/html; charset=u8" /> <title>jQuery实验室</title> <style> .myclass { font-style: italic; color: darkblue; } /* 高亮css类 */ .highlight { color: red; font-size: 30px; background: lightblue; } </style> </head> <body> <form id="info" action="#" method="get"> <div class="left clear-left"> <input type="submit" value="提交" onclick="test()"/> <input type="reset" value="重置" /> </div> </form> </div> </div> <script type="text/javascript" src="js/jquery-3.3.1.js"></script> <script type="text/javascript"> var a = 1; function test(){ a++ ;alert(a)} a= 3; </script> </body> </html>
这个也是同理,我们需要把它存到域中,并在function内部取出来使用。
如果我的回答解决了你的问题,请采纳,祝学习愉快.
2. 从网页搭建入门JavaWeb
- 参与学习 人
- 提交作业 676 份
- 解答问题 9666 个
本阶段将从前端网页搭建入手,到Java Web基础,前后端结合助你完成Java Web小白的蜕变!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星