gpt4 book ai didi

javascript - 如何使用纯JS删除在jQuery中设置的事件监听器?

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

我遇到了一种情况,使用 jQuery 的 .on 在动态元素上设置单击事件监听器:

$('body').on('click', '#email-me', function() {
call my code....
});

稍后在页面中,我必须删除这个监听器 - 但是 - 这是一个问题 - 我无法再访问 jQuery (长话短说),这意味着纯 js...

所以,我无法使用 unBind(),即使我在那里命名我的匿名函数,它仍然不会删除事件监听器。

如何删除绑定(bind),使该元素不再可点击?

感谢您的阅读!

最佳答案

你不能。 jQuery 事件的处理方式与普通 javascript 事件不同。

当您使用 jQuery 将事件添加到元素时,将遵循以下步骤:

  1. 如果元素尚未使用内部(jquery 内部)数据缓存进行初始化,则会使用数据缓存对其进行初始化,然后返回数据缓存。
  2. 如果这是为该事件类型添加的第一个事件处理程序,则会向执行 jQuery.event.dispatch 的该事件类型的元素添加一个特殊事件
  3. 最后,您传入的处理程序将添加到数据缓存中。

因此,删除此事件的唯一方法是获取 jQuery 绑定(bind)的触发 jQuery.event.dispatch特殊事件处理程序,但由于您无权访问 jQuery,因此您无法获得该事件处理程序。 (即使可以访问 jQuery,我认为您也无法获得该处理程序。)

您需要找到一种方法来保留对 jQuery 的访问权限,或者根本不使用它。

关于javascript - 如何使用纯JS删除在jQuery中设置的事件监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25146341/

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