gpt4 book ai didi

javascript - 有没有办法重新绑定(bind) jQuery 插件中引用的事件处理程序?

转载 作者:行者123 更新时间:2023-11-28 08:40:39 25 4
gpt4 key购买 nike

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

这是我的代码片段:

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);

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

最佳答案

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

关于javascript - 有没有办法重新绑定(bind) jQuery 插件中引用的事件处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20528878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com