搜索事件的更好方法是什么?

时间:2010-02-27 23:55:24

标签: javascript jquery events wordpress

我最近发现自己需要通过WordPress的媒体管理器(media-upload.js)删除绑定到窗口resize事件的函数,因为它干扰了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];
})

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

这样做是否更容易和/或更优雅?这是灾难的秘诀吗?

2 个答案:

答案 0 :(得分:1)

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

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

然后当你需要删除它时,你可以这样做,而不必打扰其他处理程序“click”。

现在,我发现你可能无法影响Wordpress绑定其事件处理程序的方式。

答案 1 :(得分:1)