javascript - JQuery - 更改绑定(bind)到 $elem.on ('click' ) 事件的函数

标签 javascript jquery

我有一个看起来像这样的事件处理程序:

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

我不知道如何为此事件动态更改函数(Popup.close)。 Popup.close 变量是一个本地函数,可以通过调用 Popup.setClose(func) 来设置,我希望这会更改触发此事件时调用的函数。然后我意识到我可能必须取消绑定(bind)事件,并在每次想要更改 Popup.close() 函数时绑定(bind)新函数。无论如何,我无法弄清楚如何取消绑定(bind)和先前使用 .on('click',...) 方法绑定(bind)的事件。

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

最佳答案

您可以使用.off("click")删除事件,然后附加新事件,但这将删除所有点击事件。

$(document).off('click');

或者保留可能已附加的其他事件:

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

JS fiddle : http://jsfiddle.net/3Xzjj/

关于javascript - JQuery - 更改绑定(bind)到 $elem.on ('click' ) 事件的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21650792/

相关文章:

javascript - 点击函数中的 jQuery 语法错误

javascript - 如何更改浏览器选项卡在 JSFiddle 中显示的文本

javascript - 如何检测 DIV 的尺寸变化?

javascript - 在 Django 中使用 chrome 实现推送通知

javascript - 如何维护对原型(prototype)对象的访问

javascript - 在 Webpack 2 中使用 bower 模块

javascript - 使用 jquery 创建链接,变量返回 undefined

Jquery-识别正在获取的对象?

javascript - 在 Leaflet v0.8-dev 之上添加蒙版叠加层

在加载 200mb 的新图像()后,Javascript 在 Safari/iPad2 中运行缓慢。为什么会这样?