var data=['Phone5','Ipad','三星笔记本','佳能相机','惠普打印机','谢谢参与','50元充值卡','1000元超市购物券'],
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){
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');
var play=document.getElementById('play');
clearInterval(timer);
timer=setInterval(function(){
var random=Math.floor(Math.random()*data.length);
title.innerHTML=data[random];
},50);
play.style.background='#999';
}
function stopFun(){
clearInterval(timer);
var play=document.getElementById('play');
play.style.background='#036';
}老师的源码中,第六行和第七行声明了两个变量,请问是全局变量吗?
如果是,为什么还要在playFun和stopFun这两个函数中进行获取?
我自己试了一下,把29行从函数内取出放在第8行,并把30、41行删掉,在浏览器中依旧可以使用,效果一样。
var data=['Phone5','Ipad','三星笔记本','佳能相机','惠普打印机','谢谢参与','50元充值卡','1000元超市购物券'],
timer=null,
flag=0;
window.onload = function(){
var play =document.getElementById('play'),
stop =document.getElementById('stop'),
title=document.getElementById('title');
//开始抽奖
play.onclick=playFun;
stop.onclick=stopFun;
//键盘事件
document.onkeyup=function(event){
event = event || window.event;
if (event.keyCode==13) {
if (flag==0) {
playFun();
flag=1;
}else{
stopFun();
flag=0;
};
};
}
}
function playFun(){
clearInterval(timer);
timer=setInterval(function(){
var random=Math.floor(Math.random()*data.length);
//console.log(random);在控制台显示
title.innerHTML=data[random];
},50);
play.style.background='gray';
flag=1;
}
function stopFun(){
clearInterval(timer);
play.style.background='red';
flag=0;
}这是我写的,效果一样,stopFun和playFun两个函数同样也是写在了onload外面,并且没有重新再获取按钮,为什么一样可以调用onload里面的变量。
老师在视频里说的在onload外面是需要重新获取的,还是我理解错了,请大神们解答。