猿问

再请教一个问题,关于鼠标事件。。。。。。

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");
           }
    }

慕粉3926413
浏览 1042回答 2
2回答

stone310

  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");            }     }这样写试试
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答