删除由另一个函数添加的事件处理函数

发布于 2024-12-20 21:24:44 字数 481 浏览 1 评论 0原文

我目前正在编写一个很大程度上利用 jQuery 的自定义上下文菜单类。

我们调用一个函数来将上下文菜单分配给 DOM 中的特定元素。分配函数将必要的标记附加到 DOM,然后通过向 $(document).keydown() 方法添加处理函数来添加键盘支持。

一旦有人单击文档本身,上下文菜单就会从 DOM 中删除。如果用户再次单击该元素,我们会再次将标记添加到 DOM,并重新分配处理函数。

我面临的问题是每次用户单击该元素时都会添加事件处理程序。 jQuery 有没有一种简单的方法来删除通过分配函数 only 分配给 $(document).keydown() 的处理程序?

我的脚本中还有其他函数也为 $(document).keydown() 事件添加侦听器,并且我不想删除所有这些函数 - 仅删除通过上下文菜单分配添加的函数脚本。这可以用 jQuery 实现吗?

I am currently writing a custom context menu class which utilizes jQuery largely.

We call a function to assign a context menu to a particular element within the DOM. The assign function appends the necessary markup to the DOM, and then adds in keyboard support by adding a handler function to the $(document).keydown() method.

As soon as someone clicks on the document itself, the context menu is removed from the DOM. If the user then clicks on the element again, we add the markup to the DOM again, and re-assign the handler function.

The problem that I am facing is that the event handlers are added each time the user clicks the element. Is there a simple way with jQuery to remove the handler assigned to $(document).keydown() by the assign function only?

There are other functions within my script that also add listeners for the $(document).keydown() event, and I don't want to remove all those functions - only those added by the context menu assignment script. Is this possible with jQuery?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

温柔一刀 2024-12-27 21:24:44

我认为使用事件名称/命名空间来隔离处理程序的 onoff 应该可行。

http://api.jquery.com/on/

I think on and off , using events names / namespaces to isolate handlers, should work.

http://api.jquery.com/on/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文