局部變量的問(wèn)題,stopFun和playFun里面都沒(méi)有定義play。但為什么可以正常運(yùn)行。而stop未定義的話就實(shí)現(xiàn)不了。
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'),
?? ??? ?title=document.getElementById('title');
??? // 開(kāi)始抽獎(jiǎng)
??? play.onclick=playFun;
??? stop.onclick=stopFun;
?? // 鍵盤(pán)事件
?? ?document.onkeyup=function(event){
?? ??? ?evevt=event||window.event;
?? ??? ?if(event.keyCode==13){
?? ??? ??? ?if(flag==0){
?? ??? ??? ??? ?playFun();
?? ??? ??? ??? ?flag=1;
?? ??? ??? ?}else{
?? ??? ??? ??? ?stopFun();
?? ??? ??? ??? ?flag=0;
?? ??? ??? ?}
?? ??? ?}
?? ?}
}
function playFun(){
?? ?var stop=document.getElementById('stop');//定義stop,未定義play?? ?clearInterval(timer);
?? ?timer=setInterval(function(){
?? ??? ?var random=Math.floor(Math.random()*data.length)
?? ??? ?title.innerHTML=data[random];
?? ?},50)
?? ?play.style.background="#999";
?? ?stop.style.background="#036";
?? ?flag=1;
}
function stopFun(){
?? ?var stop=document.getElementById('stop');//定義stop,未定義play
?? ?clearInterval(timer);
?? ?play.style.background="#036";
?? ?stop.style.background="#999";
?? ?flag=0;
}
2016-10-11
//js可以通過(guò)元素ID直接訪問(wèn)元素,也可以通過(guò)document.getElementById('play')的方式訪問(wèn)。 //第一種方式不推薦,不是標(biāo)準(zhǔn)里面的,將來(lái)不一定支持。 //至于這里stop為什么獲取不到,是因?yàn)閖s默認(rèn)已經(jīng)定義了一個(gè)stop()函數(shù); //你可以做以下嘗試: //1.刪除id=stop的span,直接在window.onload中alert(stop),會(huì)看到stop是一個(gè)function, //輸出的內(nèi)容是:function?stop(){[native?code]} // window.onload=function(){ ????????alert(stop); }; // //2.修改span的id為stop外的其他值,比如gstop,效果就跟play一樣都能獲取到。2016-08-07
play已經(jīng)在window.onload下面聲明了 ?屬于全局變量 ?在任何地方都可以獲取到
2016-08-07
在函數(shù)外面變量加var表示全局變量,函數(shù)外面和里面都可以調(diào)用。而在函數(shù)里面的變量加var則表示局部變量,函數(shù)外部無(wú)法調(diào)用。