window.onload=function(){
var oDiv=document.getElementById('div1');
oDiv.onmouseover=function(){
startMove();
}
}
var timer=null;
function startMove(){
timer=setInterval(function()
{
if(oDiv.offsetLeft==0)
{
clearInterval(timer);
}
oDiv.style.left=oDiv.offsetLeft+10+'px';
},300)
}
可不可以帮我看一下哪里出错了,运行不出来
仔细看,你的oDiv定义在onload事件里的匿名方法里,既然在方法里,怎么会是全局变量呢?
应该把oDiv放在最外面定义,这才是全局变量,这样子onload事件里的匿名方法和startMove()方法都能拿到ODiv的值。
或者也可以把startMove()加一个参数,把oDiv传进去,然后在startMove()里拿这个oDiv也是可以的。
而且你没有加else,如果不加else的话,在left值达到0之后,进入if语句块清理了计时器,还是会执行完if语句块后的这行代码的,不加else的话,你会发现你的oDiv左边多了10px的空隙。
在函数startMove中,并未定义oDiv,还有没加else