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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

為什么獲取id為play得到的變量不能放在最外面,做全局變量呢?我試了這樣,onload函數(shù)不能直接使用該變量,為什么

var data = ['Phone5', 'Ipad', '三星筆記本', '佳能相機(jī)', '惠普打印機(jī)', '謝謝參與', '50元充值卡', '1000元超市購(gòu)物券'],

timer = null,

flag=0;


window.onload = function() {

var play = document.getElementById('play'),

stop = document.getElementById('stop');//如果放在外面獲取不到

play.onclick = playFun;

stop.onclick= stopFun;

document.onkeyup=function(event){//這里keyup前面有on

event=event||window.event;

if(event.keyCode==13){

if(flag==0){//比較是==

playFun();

flag=1;

}else{

stopFun();

flag=0;

}

}

}

}


function playFun() {

var title = document.getElementById('title'),

play = document.getElementById('play');

clearInterval(timer);

timer = setInterval(function() {

var random = Math.floor(Math.random() * data.length);

title.innerHTML = data[random];

}, 100);

play.style.background="#ccc";

flag=1;

}

function stopFun(){

clearInterval(timer);

var play=document.getElementById('play');

play.style.background="#333";

flag=0;

}


正在回答

2 回答

onload 事件是整個(gè)頁(yè)面加載完成后才觸發(fā)的 ,

如果你把變量聲明放在外面,

腳本運(yùn)行時(shí)頁(yè)面上的元素還沒(méi)有加載,

getElementById自然獲取不到元素,顯示為null。


如果你讓<script>作為<body>的最后一個(gè)子元素,

那腳本運(yùn)行前,頁(yè)面上的元素都加載完畢,這樣就不會(huì)運(yùn)行出錯(cuò)了

<body>
????<!--
????各種元素
????-->
????<script>
????????//在頁(yè)面元素加載完成后運(yùn)行腳本
????????
????????var?play?=?document.getElementById('play'),
????????stop?=?document.getElementById('stop');
????????
????????window.onload=function(){
????????????//代碼
????????};
????</script>
</body>


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

jazia 提問(wèn)者

非常感謝!
2016-09-22 回復(fù) 有任何疑惑可以回復(fù)我~

所以聲明數(shù)組,定時(shí)器,flag放在外面就可以,因?yàn)檫@些可以不用等頁(yè)面加載完

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

舉報(bào)

0/150
提交
取消

為什么獲取id為play得到的變量不能放在最外面,做全局變量呢?我試了這樣,onload函數(shù)不能直接使用該變量,為什么

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

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

幫助反饋 APP下載

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

公眾號(hào)

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