1

是否可以从侦听器中取消绑定侦听器?我想这样做是因为我有一个侦听器,它决定了它自己的解除绑定标准(例如,当按下某个键时,侦听器应该解除绑定)。

$input.on("keydown.listenerOne", function (press) {  
   if(press=="37"){
      $input.off("keyup.listenerOne");
   }
});
4

3 回答 3

3

是的,这是一个正确的方法。您可以在处理程序中取消绑定它,但请注意您有两个不同的事件(keyup 和 keydown)。也许你的意思是keyup。

于 2012-11-05T23:51:48.623 回答
2

这不起作用,因为您正在绑定keydown事件并取消绑定keyup事件,根据您的示例,该事件没有绑定。此外,您引用的事件press将是eorevent并且您需要引用该which属性:if(e.which == 37)

于 2012-11-05T23:54:41.380 回答
2

您应该取消绑定您正在绑定的同一件事。在这种情况下,您尝试在绑定keyup时解除keydown绑定。另外,press不会告诉你keyCode,你应该这样做

var code = press.keyCode || press.which;
if(code == 37) { //Enter keycode
   //Do something
}

而不是if (press == "37")

取自这个答案

于 2012-11-05T23:56:43.987 回答