javascript - 搜索事件的更好方法?

标签 javascript jquery events wordpress

我最近发现自己处于这样一种情况,我需要通过 WordPress 的媒体管理器 (media-upload.js) 删除绑定(bind)到窗口调整大小事件的函数,因为它会干扰 Thickbox 的正确使用。事件附件如下:

a(window).resize(function(){tb_position()})

我花了一段时间,但我终于发现我可以这样做:

jQuery.each( jQuery(window).data('events')['resize'], function(i, event) {
    var thisEvent = event.toString().replace(/\n/g, '').replace(/\t/g, '').split(' ').join('');
    var expectedEvent = 'function(){tb_position()}';

    if (thisEvent == expectedEvent)
        delete jQuery(window).data(‘events’)[‘resize’][i];
})

在这里,我循环浏览事件,从中删除空格、制表符和新行,并将它们与我正在寻找的内容进行比较,当我找到它时,我将它扔出该死的气闸。在这种情况下,附加函数可能没有空格、制表符或换行符,但据我所知,这种方式也适用于更复杂的函数。

有没有更简单和/或更优雅的方法来做到这一点?这是 future 灾难的秘诀吗?

最佳答案

为事件注册处理程序时,可以使用限定符:

$('#something').bind('click.removeMeSomeday', function() { ... });

然后,当您需要删除它时,您可以这样做,而不会因为“点击”而打扰其他处理程序。

现在,我想到您可能无法影响 Wordpress 绑定(bind)其事件处理程序的方式。

关于javascript - 搜索事件的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2349455/

相关文章:

javascript - 从 Javascript 中的 rgb 字符串获取颜色分量?

javascript - 从Servlet获取参数值到Js文件

wpf - 内置WPF控件如何管理其事件处理程序以处理附加事件?

events - 如何在 Dart 中实现事件类型

JavaFX TextField 覆盖按键 UP/DOWN 行为

javascript - 如何组织JS加载?

javascript - 使用 jquery 定位特定的 Javascript 对象文字字段和数组

javascript - 如何在 AngularJS 中观察作用域的所有变化?

javascript - 使用选中的框删除存储在本地内存中的项目 Jquery

javascript - 如何将 Accordion 高度设置为固定值?