老师在视频里面设了个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(); } } } }
这样么?
都可以....