为了账号安全,请及时绑定邮箱和手机立即绑定

bug问题

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 回答

if(event.keyCode==13){

         if(flag==0){

           playFun();

         }else{

           stopFun();

         }

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
DOM事件探秘
  • 参与学习       99544    人
  • 解答问题       1197    个

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

进入课程
意见反馈 帮助中心 APP下载
官方微信