第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么oDIV不能聲明成全局變量?要在每個函數(shù)里聲明一下才不會報錯。

<script type="text/javascript">

window.onload=function(){

var oDiv=document.getElementById('div1');

oDiv.onmouseover=function(){

startMove(0);

}

oDiv.onmouseout=function(){

startMove(-200);

}

}

var timer=null;

function startMove(Target){

var speed;

var oDiv=document.getElementById('div1');

if(oDiv.offsetLeft>Target){speed=-10}

else{speed=10}

clearInterval(timer);

timer=setInterval(function(){

if(oDiv.offsetLeft==Target){

clearInterval(timer);

}

else{

oDiv.style.left=oDiv.offsetLeft+speed+'px';

}

},30)

}

</script>

來大神講講變量的秘密。

正在回答

3 回答

主要是為了提高程序性能,其實在函數(shù)外聲明也是可以找到,只不過花費的時間比在函數(shù)內(nèi)要長..

0 回復(fù) 有任何疑惑可以回復(fù)我~

你這樣申明, 其實已經(jīng)算是全局變量了, 不信你可以試試, 函數(shù)申明是可以給它程序 里面的子函數(shù)用的, 子函數(shù)里面不用再重新申請這個變量。

//?如果oDiv放在onload之外聲明,這時候還沒有加載到下面的html標簽,

你這句話是錯誤的, 如果沒有加onload,才是在執(zhí)行script的時候, 這個div還沒有被創(chuàng)建, 所以你獲取不到, 而一旦加了onload, 就是表示你的html加載完成以后, 再執(zhí)行onload里面的內(nèi)容 ,, 所以你理解有誤

0 回復(fù) 有任何疑惑可以回復(fù)我~

這個問題我想明白了。因為代碼是從上往下被加載的,如果oDiv放在onload之外聲明,這時候還沒有加載到下面的html標簽,這個聲明是無效的。所以寫在頭部的js代碼要取對象必須在onload里面才不會出錯!

1 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

為什么oDIV不能聲明成全局變量?要在每個函數(shù)里聲明一下才不會報錯。

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號