首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript .on("keyup")

JavaScript .on("keyup")
EN

Stack Overflow用户
提问于 2017-04-15 15:02:03
回答 2查看 10.2K关注 0票数 1

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

但是没有绑定有个问题。问题是:我的代码只运行一次,不运行一个回合,然后再次运行,而不是在另一个回合运行,并保持这样的运行状态。我替换了我想要简化的代码以进行测试。

代码语言:javascript
复制
$("#arama").on("keyup",function(event) {
      console.log("asd");
      $("#arama").off("keyup");
    });
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="arama" />

我哪里弄错了?

记者:多亏克里斯,我解决了这个问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-15 15:10:52

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

代码语言:javascript
复制
$("#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.");
  }
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input id="arama" />

票数 0
EN

Stack Overflow用户

发布于 2017-04-15 15:21:25

不需要解除事件的绑定。尝尝这个

代码语言:javascript
复制
$("#arama").on("keyup",function(event) {
    console.log("asd");
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43427578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档