我的目标:在效果发生时按住空格键(以模拟指纹扫描)。如果用户在效果完成之前释放键,我想显示一条确认消息。 keydown部分可以正常工作,并可以进行“过程”功能,但是如果在效果完成之前释放了keyup,则在keyup上不会显示任何错误消息。这就是我所拥有的...

var active = false;

$(document).one("keydown", function(e) {
    if ((e.keyCode == 32) && (active == false)) {
      active = true;
      $(".panel_1").slideDown(5000, function() {
        active = false;
        $(".panel_1").slideUp(2000, function() {process(); })
      });
    }
});

$(document).one("keyup",function(e) {
    if ((e.keyCode == 32) && (active == true)) {
      var r=confirm("Oops! You must HOLD down the space key until scan is complete. Press OK to try again, or Cancel to return to homepage.");
      if (r==true) {
        reset();
      }
      else {
        window.location.replace("home.html");
      }
    }
});

最佳答案

验证在第一个slideDown动画过程中释放了关键帧。根据您的代码,一旦它开始向上滑动,您的活动对象将被设置为false,然后使其变为false,从而不会触发keyup事件。

另外,我建议在JavaScript中使用Triple =。

10-07 13:36
查看更多