I’m trying to set “mouseactive” to true less than a second after a key command, but I would like to cancel that action if the key is pressed within that time period. However I can’t seem to figure out how to do this. This is what I have…
$(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;
}
But this doesn’t work, it doesn’t set mouseactive back to true… can anyone tell me what I’m doing wrong here?
Edit: Cleaned up redundant code.
More Edits: Make sure your
var tis defined outside any closure including$(document).ready. See below,Declare var t outside the handler.