是否可以从侦听器中取消绑定侦听器?我想这样做是因为我有一个监听器来确定自己解绑的标准(例如,当按下某个键时,监听器应该解除绑定。
$input.on("keydown.listenerOne", function (press) {
if(press=="37"){
$input.off("keyup.listenerOne");
}
});
答案 0 :(得分:3)
是的,这是一种正确的方法。您可以在处理程序内取消绑定,但要注意您有两个不同的事件(keyup和keydown)。也许你的意思是关键。
答案 1 :(得分:2)
这不起作用,因为您绑定了keydown
事件并取消绑定keyup
事件,该事件对您的示例没有任何约束力。您引用为press
的活动也是e
或event
,您需要引用which
媒体资源:if(e.which == 37)
答案 2 :(得分:2)
你应该解除与绑定相同的东西。在这种情况下,当您keyup
绑定时,您试图解除绑定keydown
。另外,press
不会告诉你keyCode,你应该这样做
var code = press.keyCode || press.which;
if(code == 37) { //Enter keycode
//Do something
}
而不是if (press == "37")