有一个输入文本在"onkeyup“事件上触发一个函数。当该函数触发时,我将使用.on( "keyup“)方法绑定一个”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" />
我哪里弄错了?
记者:多亏克里斯,我解决了这个问题。
发布于 2017-04-15 15:10:52
您的代码适用于我(见下文)。也许可以检查绑定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" />
发布于 2017-04-15 15:21:25
不需要解除事件的绑定。尝尝这个
$("#arama").on("keyup",function(event) {
console.log("asd");
});https://stackoverflow.com/questions/43427578
复制相似问题