我有停止功能,并用键启动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”部分。 –