Я пытаюсь установить «mouseactive» на true менее секунды после команды ключа, но я хотел бы отменить это действие, если клавиша нажата в течение этого периода времени. Однако я не могу понять, как это сделать. Это то, что у меня есть ...Устранение неполадок setTimeout
$(window).keydown(function(e) {
if (e.keyCode == 40) {
e.preventDefault();
mouseactive = false;
clearTimeout(t);
var t = setTimeout("mouseActive()",800);
} else if (e.keyCode == 38) {
e.preventDefault();
mouseactive = false;
clearTimeout(t);
var t = setTimeout("mouseActive()",800);
}
});
function mouseActive() {
mouseactive = true;
}
Но это не работает, она не устанавливает mouseactive назад правда ... может кто-нибудь сказать мне, что я делаю неправильно здесь?
Вы не должны передавать строки в 'setTimeout', вы должны передавать функции. Он использует 'eval', когда передается строка. 't = setTimeout (mouseActive, 800);' –
@Rocket mm .. Я только что очистил его код .. это тоже включено в очистку .. Спасибо, хотя! У меня было это как строка в моем начальном посте перед очисткой. –
Спасибо, что сделал трюк, очень оценили. – Ian