Javascript JQuery-更改绑定到$elem.on(';单击';)事件的函数

Javascript JQuery-更改绑定到$elem.on(';单击';)事件的函数,javascript,jquery,Javascript,Jquery,我有一个事件处理程序,看起来像: $(document).on('click', 'a.close, #mask', Popup.close); 我不知道如何动态更改此事件的函数(Popup.close)。Popup.close变量是一个本地函数,可以通过调用Popup.setClose(func)进行设置,我希望这样可以更改触发此事件时调用的函数。然后我意识到,每次我想要更改Popup.close()函数时,我可能必须解除绑定事件,并绑定新函数。无论如何,我无法找到如何使用.on('clic

我有一个事件处理程序,看起来像:

$(document).on('click', 'a.close, #mask', Popup.close);
我不知道如何动态更改此事件的函数(Popup.close)。Popup.close变量是一个本地函数,可以通过调用Popup.setClose(func)进行设置,我希望这样可以更改触发此事件时调用的函数。然后我意识到,每次我想要更改Popup.close()函数时,我可能必须解除绑定事件,并绑定新函数。无论如何,我无法找到如何使用.on('click',…)方法解除绑定和以前绑定的事件

所以我要问的是,使用.on()方法更改jQuery事件绑定的执行函数的最佳方法是什么? 非常感谢您的帮助。

您可以使用
.off(“单击”)
删除事件,然后附加新事件,但这将删除所有单击事件

$(document).off('click');
或保留可能已附加的其他事件:

$(document).off('click', 'a.close, #mask');

JS Fiddle:

嗯,应该可以。还有其他更有效的方法吗?在不解除事件绑定的情况下,是否无法更改处理程序函数?您可以链接方法
$(文档)。关闭(“单击”,“a.close#mask”)。打开(…
),除了我不知道更好的方法之外。@Weasel很高兴我能帮上忙!