关于键盘事件和鼠标事件混合使用的问题
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>抽奖系统</title>
<style>
*{margin:0;padding:0;}
input{border:none;outline:none;}
.box{width:130px;margin:40px auto;}
h3{color:#F60;text-align:center;}
.box input{height:24px;line-height:24px;width:50px;margin-left:6px;display:inline-block;font-size:14px;color:#fff;text-align:center;background:#036;border-radius:8px;margin-top:20px;}
</style>
</head>
<body>
<div class="box">
<h3 id="title">开始抽奖了</h3>
<input type="button" value="开始" id="play"/>
<input type="button" value="停止" id="stop"/>
</div>
<script>
var data=['iphone','iPad','惠普打印机','佳能相机','谢谢参与!','50元充值卡','200元购物卡'],
timer=null,
flag=0;
window.onload=function(){
var oTitle=document.getElementById('title'),
oPlay=document.getElementById('play'),
oStop=document.getElementById('stop');
oPlay.onclick=function(){
playFun();
/*flag=1;*/
console.log(flag+'playclick');
}
oStop.onclick=function(){
stopFun();
/* flag=0;*/
console.log(flag+'stopclick');
}
document.onkeyup=function(event){
var e=event||window.event;
if(e.keyCode==13){
if(flag==0){
playFun();
flag=1;
console.log(flag+'playkey');
}else{
stopFun();
flag=0;
console.log(flag+'stopkey');
}
}
}
function playFun(){
clearInterval(timer);
timer=setInterval(function(){
var random=Math.floor(Math.random()*data.length);
oTitle.innerHTML=data[random];
},100);
oPlay.disabled=true;
oPlay.style.background="#ccc";
}
function stopFun(){
clearInterval(timer);
oPlay.disabled=false;
oPlay.style.background="#036";
}
}
</script>
</body>
</html>
代码如上,问题1:当我用空格键触发键盘事件时,只要先用鼠标触发过事件,则空格键再也不能触发事件,有大神知道原因吗?
问题2:只要先用鼠标触发过事件,则在用键盘触发事件时每次都会先执行一个鼠标触发的事件,然后再执行键盘触发的事件,如键盘触发开始,则先执行一次鼠标触发的结束函数,然后再执行开始函数,从打印的flag可以看出,原因是什么?
问题3:鼠标和键盘如何混合使用?