输入文本会在" 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;
我错在哪里?
P.S:感谢克里斯,我已经解决了这个问题。答案 0 :(得分:0)
您的代码适合我(见下文)。也许,请检查您绑定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.");
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="arama" />
&#13;
答案 1 :(得分:0)
无需取消绑定事件。试试这个
$("#arama").on("keyup",function(event) {
console.log("asd");
});