idx问题?

来源:5-3 二级菜单展开效果

OlafChou

2017-09-13 08:22:38

http://climg.mukewang.com/59b87a030001ca0011940652.jpg

不理解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 来看下。祝学习愉快~

0

好帮手慕糖

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是指鼠标移入时对应的索引,可以分别输出对比下哟。

祝学习愉快~

0
hlafChou
h 那请问 var idx = this.getAttribute("data-index"); 这个怎么用 console.log 打印出来,我想看看这是啥玩意
h017-09-13
共1条回复

0 学习 · 36712 问题

查看课程