是否扩展自定义jquery事件回调?

是否扩展自定义jquery事件回调?,jquery,javascript-events,Jquery,Javascript Events,我有一个自定义插件事件回调,它在所有页面上都被触发 $(document).on('pjax:complete', all.myfunction); 我想扩展myfunction:调用all.myfunction,然后调用特定代码 // my specific page $(document).on('pjax:complete', specific.myfunction); specific.myfunction = function() { all.myfunction(

我有一个自定义插件事件回调,它在所有页面上都被触发

$(document).on('pjax:complete', all.myfunction);
我想扩展myfunction:调用all.myfunction,然后调用特定代码

//  my specific page  
$(document).on('pjax:complete', specific.myfunction);

specific.myfunction = function() { 
    all.myfunction();
    /* code relative to this specific page */
}

有没有更干净的方法来实现这一点?

如果您只是想要额外的功能,您可以添加一个新的处理程序。它不会覆盖现有的处理程序

$(document).on('pjax.complete', specific.myfunction);
一个细节是,不能保证处理程序是按特定顺序调用的,即使在实践中,它们是按安装顺序调用的。因此,如果您需要保证首先调用第一个处理程序,则必须执行以下操作

$(document).off('pjax.complete', all.myfunction);
$(document).on('pjax.complete', function() {
    all.myfunction();
    specific.myfunction();
});

您仍然希望应用
all.myfunction
的行为吗?是的,这就是我谈论扩展的原因:)