Javascript 删除设置为零的错误超时

Javascript 删除设置为零的错误超时,javascript,timeout,Javascript,Timeout,此处使用的超时值为0,以便按键在模糊控件之前有时间结束。这给我的印象是实现这一目标的艰难之路 $(document).keypress(function(e){ if( e.keyCode === 13){ setTimeout(function(){ $('input').blur(); }, 0); } }); 按下enter键时,有什么更好的方法来模糊控件?为什么不尝试使用keyup事件,以便在用户释放键之前有一小段时间 $(document).key

此处使用的超时值为0,以便按键在模糊控件之前有时间结束。这给我的印象是实现这一目标的艰难之路

$(document).keypress(function(e){
  if( e.keyCode === 13){
    setTimeout(function(){
      $('input').blur();
    }, 0);
  }
});

按下enter键时,有什么更好的方法来模糊控件?

为什么不尝试使用
keyup
事件,以便在用户释放键之前有一小段时间

$(document).keyup(function(e){
  if( e.keyCode === 13){
      $('input').blur();
  }
});

您不需要
设置超时
这里:

$(document).keypress(function(e){
  if( e.keyCode === 13){
      $('input').blur();
  }
});

您可能会惊讶地发现,没有超时为零的情况。Chrome的最小超时值为8毫秒,Firefox的最小超时值为15毫秒。

虽然很少见,但在某些情况下确实存在0的超时: