如何提高"on keyup"速度?



这是我的代码:

$('#MyInput').on('keyup', function (e) {
      if ($(this).val().length == 1) {
          ajaxSearch($(this).val());
     }
});

input只有一个字符时,我想运行一个函数。

问题是,如果用户键入一个单词非常快,则'keyup'事件似乎是从第二个字符开始的,这意味着它不会调用ajaxSearch()方法。

有什么方法可以提高'keyup'事件速度,当它具有1个字符时调用该函数?

当用户类型太快时,他/她可能还没有发布过以前的密钥,因此keyup从技术上讲尚未发生。

尝试keypress代替keyup

$('#MyInput').on('keypress', function (e) {
      if ($(this).val().length == 1) {
          ajaxSearch($(this).val());
     }
});

编辑

keypress inputvalue属性尚未更新,因此请捕获keyup 如果用户仅输入单个字符

$('#MyInput').on('keypress', function (e) {
      if ($(this).val().length == 1) {
          ajaxSearch($(this).val());
     }
});

$('#MyInput').on('keyup keypress', function(e) {
  if ($(this).val().length == 1) {
    ajaxSearch($(this).val(),e);
  }
});
function ajaxSearch(value,e) {
  console.log(value, e.type)
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="MyInput">

尝试按键而不是键

$('#MyInput').on('keypress', function (e) {
      if ($(this).val().length == 1) {
          ajaxSearch($(this).val());
     }
});

最新更新