我必须修改使用jQuery的ready处理程序的站点,我不想重用代码而不必再次编写它,但是我需要更改原始就绪处理程序的行为,问题是:
最好的问候
答案 0 :(得分:4)
好吧,显然你无法取消绑定准备好的处理程序,确切地说,当使用 ready()但你可以使用 bind('ready'时) ,处理程序)所以而不是
$(document).ready(handler);
使用
$(document).bind('ready', handler);
然后每当您想要更改现有的事件处理程序时使用:
$(document).unbind('ready', handler);//when there is reference to the handler
或
$(document).unbind('ready');//to remove all handlers for ready event
正如我最近发现你可以添加事件命名空间:)只删除该命名空间中的就绪事件(我已经查看了jplayer代码),如下所示:
var GD_EVENT_NAMESPACE = ".GrelaDesign";
$document.bind('ready' + GD_EVENT_NAMESPACE, function(){ alert('ready'); });
//later
$document.unbind('ready' + GD_EVENT_NAMESPACE);//this will remove only specific events
最好的问候
P.S。我在问这里之前已经进行了广泛的搜索:)很快我就问我找到答案了: - )