考虑一下:
var fn = function() { console.log("hi") };
$(document).keydown(fn);
$(document).keydown(fn);
当我按下文档内的键时, fn
将被触发两次。
有没有办法独立添加事件而无需先解开?
答案 0 :(得分:0)
没有。你最好的选择是首先取消绑定。如果要以这种方式执行,您还可以在绑定之前手动检查哪些处理程序绑定到对象。请参阅:jQuery find events handlers registered with an object
答案 1 :(得分:0)
有一种方法,它是通过使用函数设置DOM元素的.onkeydown
属性(根本不使用jQuery)。由于分配它将覆盖之前的内容,因此不会链接。
当然能够连锁显然更强大,这就是jQuery给你的力量。
调用unbind可能是正确的解决方案,但只是为了完整性,设置.on[eventname]
道具将适用于您知道只有一个要触发的函数的情况。