js,jq 鼠标经过的时候下拉一个菜单效果,我的代码问题在哪? 20
想要的效果就是鼠标经过上面的一栏前面七个li的时候,下面出现相应的块。在我就是把ali[i]一个一个列举出来的时候,结果是我想要的效果。但是写在for循环里面的时候,就会...
想要的效果就是鼠标经过上面的一栏前面七个li的时候,下面出现相应的块。在我就是把 ali[i] 一个一个列举出来的时候,结果是我想要的效果。但是写在for循环里面的时候,就会这样,不管鼠标经过哪一个ali他都是显示第七个块,而且for循环里面的 i 的值也是有问题的....不知道怎么才能写出正确的循环....
展开
1个回答
展开全部
这个原因是因为你是提前写好的事件绑定,当去触发这个事件的时候,i 这个变量的值已经循环至最后了,所以要这么修改
ali[i].onmouseover = function show(ali[i]){
//然后通过传进来的ali[i],也就是ali,来得到当去鼠标经过的是第几个
//得到结果 j
//然后写事件
hideDiv[ j ].style.display = 'block';
}
ali[i].onmouseover = function show(ali[i]){
//然后通过传进来的ali[i],也就是ali,来得到当去鼠标经过的是第几个
//得到结果 j
//然后写事件
hideDiv[ j ].style.display = 'block';
}
更多追问追答
追问
这个 j 在哪定义啊?
追答
简单做法,就是在你的 li 标签上加一个属性,比如是index属性,然后index的值就是顺序的值,比如第一个 li 的index=1;
底下的方法就简单了
$('li').each("onmouseover",function(){
hideDiv[$(this).attr("index")].show();
});
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询