是否可以从侦听器中取消绑定侦听器?我想这样做是因为我有一个侦听器,它决定了它自己的解除绑定标准(例如,当按下某个键时,侦听器应该解除绑定)。
$input.on("keydown.listenerOne", function (press) {
if(press=="37"){
$input.off("keyup.listenerOne");
}
});
是否可以从侦听器中取消绑定侦听器?我想这样做是因为我有一个侦听器,它决定了它自己的解除绑定标准(例如,当按下某个键时,侦听器应该解除绑定)。
$input.on("keydown.listenerOne", function (press) {
if(press=="37"){
$input.off("keyup.listenerOne");
}
});
是的,这是一个正确的方法。您可以在处理程序中取消绑定它,但请注意您有两个不同的事件(keyup 和 keydown)。也许你的意思是keyup。
这不起作用,因为您正在绑定keydown
事件并取消绑定keyup
事件,根据您的示例,该事件没有绑定。此外,您引用的事件press
将是e
orevent
并且您需要引用该which
属性:if(e.which == 37)
您应该取消绑定您正在绑定的同一件事。在这种情况下,您尝试在绑定keyup
时解除keydown
绑定。另外,press
不会告诉你keyCode,你应该这样做
var code = press.keyCode || press.which;
if(code == 37) { //Enter keycode
//Do something
}
而不是if (press == "37")
取自这个答案