问答详情
源自:4-5 [DOM事件] 抽奖系统(下)

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-05 16:56

个回答

  • 小千63
    2016-02-09 00:04:08

    要按两次回车才能结束。

  • 慕沐8406146
    2016-02-07 14:19:08

    第一次按下回车的时候是停止不了的,但是第一次按下回车后就把flag=1了,

    所以第二次按下回车就可以停止了

  • Weicong
    2016-02-06 17:15:46

    你应该是要按两次才能停止吧?第一次使得flag=1 然后第二次就因为flag=1而使得你再按次回车就停止了