【发布时间】:2020-05-10 21:38:15
【问题描述】:
我正在使用以下代码使用户能够使用向上和向下箭头键显示或隐藏照片描述 (#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 新手,所以也许这不是最好的方法。在动画期间防止其他功能触发的最简单方法是什么?
【问题讨论】:
标签: jquery binding callback keydown jquery-events