У меня есть функция в jQuery, которая запускается всякий раз, когда я нажимаю любую из клавиш со стрелками. Ниже приведен код для «стрелки вверх», а остальные три случая выглядят очень похожими и содержатся в функции checkKey.Предотвращение выполнения функции jQuery до завершения текущего
document.onkeydown = checkKey;
function checkKey(e) {
var divs = ["one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen"];
e = e || window.event;
if (e.keyCode == '38') {
for (i = 0; i < divs.length; i++){
var tmp = document.getElementById(divs[i]);
var coord = $(tmp).position();
if ((Math.abs(embargo_top - coord.top) < 115) && (Math.abs(embargo_left - coord.left) < 15)){
if(embargo_top < coord.top){
embargo_top = coord.top;
embargo_left = coord.left;
$(tmp).animate({
'top': (parseInt($(tmp).css('top'), 10) - 100) + "px"
}, 500);
break;
}
}
}
checkIfWinner();
}
Как обрабатывать эти события, так что если кнопка I разомните кучу клавиш со стрелками, каждое выполнение функции происходит только после того, как вызов предыдущей функции полностью закончена?
http://stackoverflow.com/questions/7373023/throttle-event-calls-in-jquery –