【问题标题】:Remove erroneous timeout that is set to zero删除设置为零的错误超时
【发布时间】:2013-08-07 00:31:11
【问题描述】:

这里使用了 0 的超时时间,以便按键在模糊控制之前有时间结束。这让我觉得这是实现这一目标的令人绞尽脑汁的方式......

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

当按下回车键时,有什么更好的模糊控件的方法?

【问题讨论】:

    标签: javascript timeout


    【解决方案1】:

    这里不需要setTimeout

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

    The demo.

    【讨论】:

      【解决方案2】:

      为什么不尝试使用keyup 事件,这样您在用户释放密钥之前还有一小段时间。

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

      Check Fiddle

      【讨论】:

        【解决方案3】:

        您可能会惊讶地发现没有超时为零这样的事情。 Chrome 的最小超时值为 8ms,Firefox 的最小超时值为 15ms。

        【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-20
        • 2015-07-04
        • 2015-02-13
        • 2023-03-03
        相关资源
        最近更新 更多