为了账号安全,请及时绑定邮箱和手机立即绑定

可不可以帮我看一下哪里出错了,运行不出来​

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

可不可以帮我看一下哪里出错了,运行不出来

正在回答

2 回答

仔细看,你的oDiv定义在onload事件里的匿名方法里,既然在方法里,怎么会是全局变量呢?

应该把oDiv放在最外面定义,这才是全局变量,这样子onload事件里的匿名方法和startMove()方法都能拿到ODiv的值。

或者也可以把startMove()加一个参数,把oDiv传进去,然后在startMove()里拿这个oDiv也是可以的。

而且你没有加else,如果不加else的话,在left值达到0之后,进入if语句块清理了计时器,还是会执行完if语句块后的这行代码的,不加else的话,你会发现你的oDiv左边多了10px的空隙。

0 回复 有任何疑惑可以回复我~

在函数startMove中,并未定义oDiv,还有没加else

1 回复 有任何疑惑可以回复我~
#1

钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱

oDiv 不是在外面定义了吗?是全局变量诶,在内部函数里面应该可以直接拿来用吧?
2017-09-06 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

可不可以帮我看一下哪里出错了,运行不出来​

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信