是否有可能从听众中取消绑定监听器?我想这样做,因为我有一个监听器,决定当按下某个键自身的解绑定(例如标准,听者应该解除绑定。使用.off()它嵌套。对内部而()
$input.on("keydown.listenerOne", function (press) {
if(press=="37"){
$input.off("keyup.listenerOne");
}
});
是否有可能从听众中取消绑定监听器?我想这样做,因为我有一个监听器,决定当按下某个键自身的解绑定(例如标准,听者应该解除绑定。使用.off()它嵌套。对内部而()
$input.on("keydown.listenerOne", function (press) {
if(press=="37"){
$input.off("keyup.listenerOne");
}
});
这不起作用,因为你绑定了事件并且解除绑定事件,该绑定没有绑定按照您的例子。你也引用作为press
事件将e
或event
,你会需要引用which
属性:if(e.which == 37)
你说得对,基本上是一堆错别字...感谢。 – brentonstrine
快乐帮:) – AlienWebguy
是的,这是一个正确的做法,你可以在里面解除绑定但是请注意,你有两个不同的事件(keyup和keydown),也许你的意思是keyup
你应该解除绑定你要绑定同样的事情。在这种情况下,你正试图拆散keyup
当你甲肝界。此外,press
不会告诉你该键代码,你应该做的
var code = press.keyCode || press.which;
if(code == 37) { //Enter keycode
//Do something
}
而不是if (press == "37")
'keyCode' is not reliable。 – AlienWebguy
我更新了答案 – Jeff
很酷,你可以通过删除三元组并替换为'var code = press.keyCode || press.which;' – AlienWebguy
你尝试什么时间?它有用吗?另外我认为'press'将是事件对象而不是哪个键被按下。 – Musa
这不是一个问题,如果你改变了'关(“KEYUP ....''要关闭(”的keydown ....'这会工作,而且你改变'按==''到= press.keyCode =' – andlrc
这是行不通的,由于该keydown/KEYUP不一致的情况。我已经在我的代码凝视时间过长...... – brentonstrine