如何改善"关键词"速度?

时间:2017-11-27 13:24:57

标签: javascript jquery onkeyup

这是我的代码:

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

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

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

有什么方法可以提高'keyup'事件的速度来调用只有1个字符的函数吗?

1 个答案:

答案 0 :(得分:7)

当用户输入速度过快时,他/她可能尚未发布上一个密钥,因此keyup技术上还没有发生。

尝试使用keypress代替keyup

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

修改

keypress input' value属性尚未更新,因此如果用户仅输入一个,请抓住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">
&#13;
&#13;
&#13;