Arafat
2016-04-02 23:38
老师在视频里面设了个flag参数来判断是第几次按, 如果不用这个,换成判断此时定时器是不是在运行,或者是开始按钮是不是灰色之类的判断是不是会更简单啊?
考虑程序的健壮性应该不能设置flag,要根据定时器是否执行更好,因为可能用户在用使用键盘事件开始,按钮点击事件结束时,设置flag就没有用了
var data=['Phone5','Ipad','三星笔记本','佳能相机','惠普打印机','谢谢参与','50元充值卡','1000元超市购物券'],
timer = null,
isRun = false;
window.onload = function(){
var oTitle = document.getElementById('title'),
btn_play = document.getElementById('play'),
btn_stop = document.getElementById('stop');
btn_play.onclick = playFun;
btn_stop.onclick = stopFun;
//开始按钮点击事件
function playFun(){
if(!isRun){
timer = window.setInterval(function(){
var random = Math.floor(Math.random()*data.length);
oTitle.innerHTML = data[random];
isRun = true;
btn_play.style.background="#ccc";
btn_stop.style.background='';
},100);
}
}
//停止按钮点击事件
function stopFun(){
if(isRun){
window.clearInterval(timer);
btn_play.style.background='';
btn_stop.style.background='#ccc';
isRun=false;
}
alert("你抽中了"+oTitle.innerHTML+"! 恭喜!");
}
//按键事件
document.onkeyup = function(event){
event =event||window.event;
//如果符合设定的按键
if(event.keyCode==13||event.keyCode==32){
if (isRun) {
stopFun();
}else{
playFun();
}
}
}
}这样么?
都可以....
DOM事件探秘
99528 学习 · 1305 问题
相似问题