为什么jquery中的keyup函数会触发两次? 我尝试过unbind和off方法..但它不起作用 任何人帮助我
$("#inputid").keyup(function(e) {
console.log("inputttt calling twice");
var userQuantity =$('#id').val();
});
答案 0 :(得分:-1)
除非你要两次添加监听器,否则它通常不会那样。
要防止同一元素上有多个事件侦听器,请尝试在添加侦听器之前删除该侦听器。另一种方法是在添加事件监听器之前定义回调函数,这样,无论你做多少次addEventListener
,它只会将一次监听器添加到元素中。像下面的东西。
预先提供回调功能
var input = document.getElementById('some');
var callback = function(event) {
console.log("PRINT");
}
input.addEventListener("keyup", callback)
// input.removeEventListener("keyup", callback)
input.addEventListener("keyup", callback)

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="some" value="" >
&#13;
匿名函数作为回调
var input = document.getElementById('some');
input.addEventListener("keyup", function(event) {
console.log("PRINT");
})
// input.removeEventListener("keyup", callback)
input.addEventListener("keyup", function(event) {
console.log("PRINT");
})
&#13;
<input id="some" value="">
&#13;