Я использую следующий код, чтобы пользователь мог показать или скрыть описание фотографии (#photoinfo) и меню (.slidetable) с помощью клавиш со стрелками вверх и вниз.Если один из этих двух элементов div уже открыт, нажатие противоположной стрелки закрывает этот элемент перед открытием другого.
$(document).unbind('keypress');
$(document).keydown(function(event) {
switch (event.keyCode) {
case 38:
if ($('#photoinfo').is(".open")) {
closeInfo();
}
else if ($('.slidetable').is(".open")) {
closeSlide2();
openInfo();
}
else {
openInfo();
}
break;
case 40:
if ($('.slidetable').is(".open")) {
closeSlide();
}
else if ($('#photoinfo').is(".open")) {
closeInfo();
openSlide();
}
else {
openSlide();
}
break;
}
return false;
});
Кажется, это работает, только проблема в том, что если две стрелки нажаты одновременно или одна за другой, оба div открыты, перекрывая друг друга.Я ищу способ, по существу, отсоединить функцию нажатия клавиш после первой анимации и заново связать функцию нажатия клавиш после ее завершения.Я новичок в jquery, так что, возможно, это не лучший способ сделать это.Какой самый простой способ предотвратить запуск другой функции во время анимации?
Спасибо