bug问题

来源:4-5 [DOM事件] 抽奖系统(下)

慕斯卡9626126

2015-11-02 00:07

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();
         }else{
           stopFun();
         }
      }
   }
}

function playFun(){
	var title=document.getElementById('title');
	var play=document.getElementById('play');
	flag = 1;
	clearInterval(timer);
	timer=setInterval(function(){
	   var random=Math.floor(Math.random()*data.length);
	   title.innerHTML=data[random];
	},50);
    play.style.background='#999';
}

function stopFun(){
	flag = 0;
	clearInterval(timer);
	var play=document.getElementById('play');
	play.style.background='#036';
}

flag应该在函数里设置,否则会有bug,当第一次点击鼠标,必须两次enter才能停止


写回答 关注

1回答

  • 大黑虎
    2016-01-02 22:30:35

    if(event.keyCode==13){

             if(flag==0){

               playFun();

             }else{

               stopFun();

             }

    判断flag=0,执行函数playFun(),之后应把flag的值定位1,这样当再次按下回车键时,flag=1,执行函数stopFun,此时应重下噢你设置flag=0,这样再次按下回车键时,循环开始!

DOM事件探秘

DOM事件?本课程会通过实例来给小伙伴们讲解如何使用这些事件

99544 学习 · 1197 问题

查看课程

相似问题