我有停止功能,並用鍵啓動setInterval。 它以S鍵開始並以Z鍵停止。如何設置停止/啓動setInterval功能只有一個鍵
var refreshIntervalId;
window.addEventListener("onkeydown", keyDown,true);
window.addEventListener("keydown", keyDown);
function keyDown() {
var e = window.event;
switch (e.keyCode) {
case 83:
start();
break;
case 90:
stop();
break;
}
}
function start() {
stop();
refreshIntervalId = setInterval(function() {
// code...
},10);
}
function stop() {
if (refreshIntervalId != null) {
clearInterval(refreshIntervalId);
refreshIntervalId = null;
}
}
那麼我該如何設置Z鍵來啓動和停止SetInterval? 例如我按Z鍵,它開始,然後我再次按Z鍵,它停止! 任何人都可以幫助我?
您的第一個'addEventListener()'調用不正確,因爲沒有onkeydown事件,所以不會執行任何操作。在你的'keydown'函數中,你可以爲函數設置一個參數(在函數被觸發時它將成爲事件對象),而不是'var e = window.event',就像這樣:'function keydown(e) {...' –
它工作正常! –
它的工作原理是因爲你的第二個'addEventListener()'被正確寫入,但第一個對你沒有幫助。沒有'onkeydown'事件,所以這行不會註冊任何東西。它也有效,因爲你正在獲得對事件的參考,但是你不需要這麼做。你可以在'keydown'函數中添加一個'e'參數並刪除'var e ...'這一行。請參閱:https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener,然後滾動到「傳統Internet Explorer和attachEvent」部分。 –