harry2013
2016-08-07 10:24
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){
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;
}
//js可以通过元素ID直接访问元素,也可以通过document.getElementById('play')的方式访问。 //第一种方式不推荐,不是标准里面的,将来不一定支持。 //至于这里stop为什么获取不到,是因为js默认已经定义了一个stop()函数; //你可以做以下尝试: //1.删除id=stop的span,直接在window.onload中alert(stop),会看到stop是一个function, //输出的内容是:function stop(){[native code]} // window.onload=function(){ alert(stop); }; // //2.修改span的id为stop外的其他值,比如gstop,效果就跟play一样都能获取到。
play已经在window.onload下面声明了 属于全局变量 在任何地方都可以获取到
在函数外面变量加var表示全局变量,函数外面和里面都可以调用。而在函数里面的变量加var则表示局部变量,函数外部无法调用。
DOM事件探秘
99545 学习 · 1197 问题
相似问题