9527AImm
2016-06-01 09:59
window.onload=function(){
var odiv=document.getElementById("div1");
odiv.onmouseover = function(){
startMove();
}
}
function startMove(){
var odiv=document.getElementById("div1");
setInterval(function(){
odiv.style.left = odiv.offsetLeft + 10 + 'px';
},30)
}
这段里面 var odiv = document.getElementById('div1');有两次,想知道后面这次的意义是什么,读取不到前面写的么?
这两次定义的odiv的作用域都是在各自的函数体内。也就是startMove()是获取不到onload的匿名函数中定义的odiv.
如果你想只定义一次,那就将odiv定义成全局变量,这个页面的任何函数都可以直接获取的到。
楼上正解
两个都是局部变量,要分别在两个函数内声明
JS动画效果
113925 学习 · 1443 问题
相似问题