我正在使用以下代码使用户能够使用向上和向下箭头键显示或隐藏照片描述 ( #photoinfo
) 和菜单 ( )。.slidetable
如果这两个 div 中的一个已经打开,则在打开另一个之前按相反的箭头会关闭该 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 打开,相互重叠。我正在寻找一种keydown
在第一个动画启动后基本上取消绑定函数的方法,并在keydown
它完成后重新绑定函数。我是 jQuery 新手,所以也许这不是最好的方法。在动画期间防止其他功能触发的最简单方法是什么?