DOM事件探秘-抽獎系統
var data=['iphone5','Ipad','三星筆記本','佳能相機','惠普打印機','謝謝參與','50元充值券','200元購物券'],
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;
? ? //打印按鍵鍵碼的代碼:
? ? //console.log(event.keyCode);
? ? if(event.keyCode==13){
? ? if(flag==0){
? ? playFun();
? ? flag=1;
? ? }else{
? ? stopFun();
? ? flag=0;
? ? }
? ? }
? ?}
}
function playFun(){
var ?title=document.getElementById('title'),
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'
}
這串代碼中,雖然鍵盤事件用了flag=0或者1來判斷抽獎是否開始了,但是鼠標事件里面沒有啊。為什么當用鼠標點擊開始,按下回車也能結束呢??
2016-02-09
要按兩次回車才能結束。
2016-02-07
第一次按下回車的時候是停止不了的,但是第一次按下回車后就把flag=1了,
所以第二次按下回車就可以停止了
2016-02-06
你應該是要按兩次才能停止吧?第一次使得flag=1 然后第二次就因為flag=1而使得你再按次回車就停止了