所以基本上我想要第一个键(“q”)来初始化setTimeouts,然后我想在setTimeouts运行时禁用它再次被按下,然后当setTimeouts结束时,重新允许再次按下。
$(document).keydown(function(e) {
// if 'q' key is pressed, initalize setTimeouts
if (e.keyCode == 81) {
var rock = $('#rock');
// disable 'q' key while setTimeouts are running
setTimeout(function () {
rock.css('background-position', '-34px -0px');
setTimeout(function () {
rock.css('background-position', '-66px -0px');
setTimeout(function () {
rock.css('background-position', '-96px -0px');
}, 300);
}, 300);
}, 300);
// re enable 'q' key when setTimeouts are done
}
});
有什么想法吗?
最佳答案
在开始超时之前设置一个变量,并在超时后清除它。
var q_enabled = true;
$(document).keydown(function(e) {
// if 'q' key is pressed, initalize setTimeouts
if (e.keyCode == 81 && q_enabled) {
q_enabled = false; // Disable Q key
var rock = $('#rock');
setTimeout(function () {
rock.css('background-position', '-34px -0px');
setTimeout(function () {
rock.css('background-position', '-66px -0px');
setTimeout(function () {
rock.css('background-position', '-96px -0px')
q_enabled = true; // Re-enable it
}, 300);
}, 300);
}, 300);
}
});
关于javascript - 执行函数后禁用某个键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25655871/