課程
/前端開發
/JavaScript
/DOM事件探秘
先使用鼠標點擊開始,再使用鍵盤停止,發現需要摁兩次鍵盤;
先使用鍵盤開始抽獎,再使用鼠標停止,再使用鍵盤開始抽獎時需要摁兩次鍵盤;
2016-03-10
源自:DOM事件探秘 4-5
正在回答
加兩個flag就可以了
SevenTrap 提問者
我和你遇到了同樣的問題
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>無標題文檔</title><style type="text/css">*{margin:0;padding:0}.title{width:400px;?????? height:70px;?? ???? margin:0 auto;?? ??? ?padding-top:30px;?? ??? ?text-align:center;?? ??? ?font-size:24px;?? ??? ?color:#C00;?? ??? ?font-weight:bold}.btn{width:190px;???? height:40px;?? ? margin:0 auto;?? ?}.btn span{?? ?float:left;?? ?display:block;?? ?width:80px;?? ?height:27px;?? ?background:#039;?? ?text-align:center;?? ?line-height:27px;?? ?margin:7px;?? ?color:#FFF;?? ?font-size:14px;??? font-family:"微軟雅黑";??? cursor:pointer;?? ?border-radius:6px;?? ?}</style><script>var data=['iPhone6','謝謝惠顧','1000元購物卡','謝謝惠顧','佳能單反','聯想筆記本','謝謝惠顧','50元話費卡','蘋果耳機','謝謝惠顧']timer=null;flag=0window.onload=function(){?? ?var play=document.getElementById('play');?? ?var over=document.getElementById('over');?? ?play.onclick=playfun?? ?over.onclick=overfun?? ?document.onkeyup=function(event){?? ??? event=event||window.event;?? ??? if(event.keyCode==13)?? ?? {?? ???? if(flag==0){?? ??? ? playfun();?? ????? flag=1;?? ??? ?} ?? ??? else{?? ??? overfun();?? ??? flag=0;?? ??????? }?? ?? }?? ?? ??? }}?? ?function playfun(){?? ?var title=document.getElementById('title');?? ?var play=document.getElementById('play');?? ?clearInterval(timer);?? ?timer=setInterval(function(){?? ??? ?var random=Math.floor(Math.random()*data.length)?? ??? ?title.innerHTML=data[random];?? ??? ?},20)?? ?play.style.background='#999'?? ?flag=1;?? ?}?? ??? ?function overfun(){?? ?clearInterval(timer);?? ?var play=document.getElementById('play');?? ?play.style.background='#039'?? ?flag=0;?? ?}?? ??? ?</script></head><body><div id="title" class="title">開始抽獎啦!</div><div class="btn"
><span id="play">開始</span><span id="over">結束</span></div></body></html>
把代碼貼出來吧這樣不好發現錯誤。
舉報
DOM事件?本課程會通過實例來給小伙伴們講解如何使用這些事件
2 回答鍵盤事件里還有一個小BUG,希望老師優化
4 回答自己測的時候發現了一個bug
2 回答有個BUG,removeHandler的時候
1 回答一個classname的小問題
1 回答發現一個小問題哦
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-03-24
加兩個flag就可以了
2016-03-11
我和你遇到了同樣的問題
2016-03-11
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
<style type="text/css">
*{margin:0;padding:0}
.title{width:400px;
?????? height:70px;
?? ???? margin:0 auto;
?? ??? ?padding-top:30px;
?? ??? ?text-align:center;
?? ??? ?font-size:24px;
?? ??? ?color:#C00;
?? ??? ?font-weight:bold}
.btn{width:190px;
???? height:40px;
?? ? margin:0 auto;
?? ?}
.btn span{
?? ?float:left;
?? ?display:block;
?? ?width:80px;
?? ?height:27px;
?? ?background:#039;
?? ?text-align:center;
?? ?line-height:27px;
?? ?margin:7px;
?? ?color:#FFF;
?? ?font-size:14px;
??? font-family:"微軟雅黑";
??? cursor:pointer;
?? ?border-radius:6px;
?? ?}
</style>
<script>
var data=['iPhone6','謝謝惠顧','1000元購物卡','謝謝惠顧','佳能單反','聯想筆記本','謝謝惠顧','50元話費卡','蘋果耳機','謝謝惠顧']
timer=null;
flag=0
window.onload=function(){
?? ?var play=document.getElementById('play');
?? ?var over=document.getElementById('over');
?? ?play.onclick=playfun
?? ?over.onclick=overfun
?? ?document.onkeyup=function(event){
?? ??? event=event||window.event;
?? ??? if(event.keyCode==13)
?? ?? {
?? ???? if(flag==0){
?? ??? ? playfun();
?? ????? flag=1;
?? ??? ?}
?? ??? else{
?? ??? overfun();
?? ??? flag=0;
?? ??????? }
?? ?? }
?? ?? ?
?? }
}
?? ?
function playfun(){
?? ?var title=document.getElementById('title');
?? ?var play=document.getElementById('play');
?? ?clearInterval(timer);
?? ?timer=setInterval(function(){
?? ??? ?var random=Math.floor(Math.random()*data.length)
?? ??? ?title.innerHTML=data[random];
?? ??? ?},20)
?? ?play.style.background='#999'
?? ?flag=1;
?? ?}?? ?
?? ?
function overfun(){
?? ?clearInterval(timer);
?? ?var play=document.getElementById('play');
?? ?play.style.background='#039'
?? ?flag=0;
?? ?}
?? ?
?? ?
</script>
</head>
<body>
<div id="title" class="title">開始抽獎啦!</div>
<div class="btn"
>
<span id="play">開始</span>
<span id="over">結束</span>
</div>
</body>
</html>
2016-03-10
把代碼貼出來吧這樣不好發現錯誤。