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

我最近发现自己需要通过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];
})

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

这样做有更简单和/或更优雅的方式吗?这是灾难的秘诀吗?

最佳答案 注册事件的处理程序时,可以使用限定符:

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

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

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

点赞