var div=document.getElementsByTagName("div");//获取html的div元素,总共四个 function vs(a,b){ a=document.createElement("div");创建一个div作为body的子元素,且用了绝对定位,距左边的边距为变量b document.body.appendChild(a); a.style="position:absolute"; a.style.left=b; a.style.top="10px"; return a; } var c=40;//遍历在四个div的鼠标悬浮事件,可是距左边的距离我设置的是一直变化的,可是显示出来却没有发生变化,不知是什么原因??????? for(var i=0;i<4;i++){ div[i].onmouseover=function(){ this.style.backgroundColor="yellow"; var b=vs("my",c+c*i+"px"); } }
2 回答
stone310
TA贡献361条经验 获得超191个赞
var b=vs("my",c+c*i+"px")
因为for循环在页面加载时已经完毕了,这里的i值固定为4,所以会没有变化,将i值保存到div[i]的index属性上
for(var i=0;i<4;i++){ var div[i].index=i; div[i].onmouseover=function(){ this.style.backgroundColor="yellow"; var b=vs("my",c+c*this.index+"px"); } }
这样写试试
添加回答
举报
0/150
提交
取消