JavaScript.on("keyup")
JavaScript .on("keyup")
有一个输入文本在 "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" />
我哪里弄错了?
P.S: 感谢克里斯,我已经解决了。
你的代码对我有用(见下文)。也许检查你在哪里绑定你的 keyup
事件。它应该在页面显示之前加载文档时绑定一次。如果您多次绑定它(即,如果包含您的 keyup
函数的代码 运行 不止一次),您将 运行 遇到问题。
$("#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.");
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="arama" />
活动无需解绑。试试这个
$("#arama").on("keyup",function(event) {
console.log("asd");
});
有一个输入文本在 "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" />
我哪里弄错了?
P.S: 感谢克里斯,我已经解决了。
你的代码对我有用(见下文)。也许检查你在哪里绑定你的 keyup
事件。它应该在页面显示之前加载文档时绑定一次。如果您多次绑定它(即,如果包含您的 keyup
函数的代码 运行 不止一次),您将 运行 遇到问题。
$("#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.");
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="arama" />
活动无需解绑。试试这个
$("#arama").on("keyup",function(event) {
console.log("asd");
});