如何获取对 JQuery 中元素的单击处理程序的引用?
这是我正在尝试做的事情:
存储点击处理程序,
更改下一次单击的单击处理程序,
恢复原始点击处理程序
var originalClick = $(settings.currentTarget).click;
$(settings.currentTarget).off("click");
$(settings.currentTarget).click(function (e) {
e.preventDefault();
settings.model.modal.close();
$(settings.currentTarget).off("click");
$(settings.currentTarget).click(originalClick);
});
上面的代码第一次有效,但是,当我再次单击该元素时,它失败了:
Uncaught TypeError: Object [object HTMLAnchorElement] has no method 'on'
Update:
我现在意识到这是我正在尝试做的一个非常糟糕的设计。我通过在视图模型中维护可见性布尔值解决了这个问题,如果是真的,请不要重新打开模式。
$(...).click
是 jQueryclick()
方法,而不是您的事件处理程序。
您可以使用未记录的内部 API https://stackoverflow.com/a/2518441/34397获取事件处理程序列表:
jQuery._data( elem, "events" );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)