JavaScript .on(" keyup")

时间:2017-04-15 15:02:04

标签: javascript jquery bind keyup unbind

输入文本会在" onkeyup"上触发一个功能。事件。当该功能触发时,我将绑定一个" keyup"使用.on(" keyup")方法获取最后一个按键,以确定它是否为字母数字,以便触发我想要的搜索ajax。在我完成之后,我解除了与.off(" keyup")方法的连接。

但是这个问题存在问题。问题是;我的代码运行一次并且没有运行转弯,然后再次运行并且没有为另一个转弯运行并保持这样。我替换了我想要简化它的代码来测试。



$("#arama").on("keyup",function(event) {
      console.log("asd");
      $("#arama").off("keyup");
    });

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="arama" />
&#13;
&#13;
&#13;

我错在哪里?

P.S:感谢克里斯,我已经解决了这个问题。

2 个答案:

答案 0 :(得分:0)

您的代码适合我(见下文)。也许,请检查您绑定keyup事件的位置。在页面显示之前加载文档时应该绑定一次。如果多次绑定它(即如果包含keyup函数的代码运行多次),则会遇到问题。

&#13;
&#13;
$("#arama").on("keyup", function(event) {
  var i = event.keyCode;
  if ((i >= 48 && i <= 57) || (i >= 96 && i <= 105)) {
    $("#arama").off("keyup");
    console.log("Number pressed. Stopping...");
  } else {
    console.log("Non-number pressed.");
  }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input id="arama" />
&#13;
&#13;
&#13;

答案 1 :(得分:0)

无需取消绑定事件。试试这个

$("#arama").on("keyup",function(event) {
    console.log("asd");
});