Keyup函数调用两次

时间:2017-11-28 23:51:01

标签: jquery keyup

为什么jquery中的keyup函数会触发两次? 我尝试过unbind和off方法..但它不起作用 任何人帮助我

$("#inputid").keyup(function(e) {
             console.log("inputttt calling twice");
              var userQuantity =$('#id').val();

          });

1 个答案:

答案 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;
&#13;
&#13;

匿名函数作为回调

&#13;
&#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;
&#13;
&#13;