首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有方法重新绑定jQuery插件中引用的事件处理程序?

问是否有方法重新绑定jQuery插件中引用的事件处理程序?
EN

Stack Overflow用户
提问于 2013-12-11 20:05:11
回答 1查看 143关注 0票数 1

我正在建设的一个网站上使用leanModal插件。我目前正在处理管理员页面,并希望禁用覆盖单击事件处理程序,直到用户成功通过身份验证为止。我可以使用$("#lean_overlay").off("click");成功地解除所有事件处理程序的绑定,但是当特定事件处理程序存储在变量中时,我无法解除绑定/重新绑定。我使用的是jQuery 1.10.2和最新的leanModal。

下面是我的代码片段:

代码语言:javascript
复制
var overlay_event = $._data($('#lean_overlay')[0], "events");
$('#lean_overlay').off('click', overlay_event);
    // insert code to check if user's logged in
$('#lean_overlay').on('click', overlay_event);

这是使用jQuery 1.8+将处理程序存储在变量中的正确方法吗?

编辑:

我没有提到我已经尝试过event.preventDefault();和return false;来阻止事件的发生。我检查用户身份验证状态的逻辑正在工作。不起作用的是禁用覆盖层的单击事件处理程序,以强制用户在访问页面之前使用登录模式。我不确定这在我最初的帖子中是否清楚。存储事件处理程序似乎是最好的选择..。

第二版编辑:

我想出了如何阻止覆盖单击事件处理程序使用错误版本的名称空间触发:

$('#lean_overlay').off('click', $(this).leanModal.close_modal);

事件处理程序的删除可以工作,但重新绑定似乎不起作用。我似乎找不到重新绑定链接插件中的事件处理程序函数的简单方法。想法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-12 14:57:55

因此,我无法找到“捕获”插件引用的事件处理程序。我的解决方案是创建自己的覆盖,并将其用于登录屏幕。因为它是我的!:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20528878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档