idx问题?
来源:5-3 二级菜单展开效果
OlafChou
2017-09-13 08:22:38
不理解idx 到底是什么意思,我觉得 idx就是0,1,2,3,那为何红色选框的 idx 不能直接用 m代替呢,m 不也是0,1,2,3嘛,求老师解释?
我的代码都是老师那里复制过来的,请老师告诉一下 var idx = this.getAttribute("data-index"); idx 到底会打印出来啥玩意?
// 导航菜单 // 遍历主菜单,切绑定事件 for(var m=0;m<menuItems.length;m++){ // 给每一个 menu-item 定义 data-index 属性,作为索引 menuItems[m].setAttribute("data-index",m); menuItems[m].onmouseover = function(){ subMenu.className = "sub-menu"; var idx = this.getAttribute("data-index"); // 遍历所有子菜单,将每个都隐藏 for(var j=0;j<innerBox.length;j++){ innerBox[j].style.display ="none"; menuItems[j].style.background = 'none'; } menuItems[idx].style.background = "rgba(0,0,0,0.1)"; innerBox[idx].style.display ="block"; } menuItems[m].onmouseout = function(){ this.style.background = "rgba(0,0,0,0)"; } }
为何移出的时候用下面的代码
menuItems[m].onmouseout = function(){
this.style.background = "rgba(0,0,0,0)";
所以我是真的不理解 m 和 idx 的区别在哪里
2回答
好帮手慕糖
2017-09-13
你好,这句话是获取当前移出的元素对应的data-index值,然后赋值给 idx ,你可以打印 idx 来看下。祝学习愉快~
好帮手慕糖
2017-09-13
你好,m是0,1,2,3循环的全部,可做如下理解:
menuItems[m].setAttribute("data-index",m);(这里使用m,是循环)即个每一个 menu-item 定义 data-index 属性;
var idx = this.getAttribute("data-index");获取当前的属性,赋值个idx;这个是特定的,是想要知道属性移入的是具体的哪一个,然后让这个对应的这个的菜单显示。
m是指所有的所以,而idx是指鼠标移入时对应的索引,可以分别输出对比下哟。
祝学习愉快~
相似问题