0

我有这个在所有页面上触发的自定义插件事件回调

$(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 */
}

有没有更清洁的方法来实现这一目标?

4

1 回答 1

1

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

$(document).on('pjax.complete', specific.myfunction);

一个细节是不能保证处理程序是按特定顺序调用的,即使在实践中,它们是按照安装顺序调用的。因此,如果您需要保证首先调用第一个处理程序,则必须执行以下操作。

$(document).off('pjax.complete', all.myfunction);
$(document).on('pjax.complete', function() {
    all.myfunction();
    specific.myfunction();
});
于 2012-11-07T17:02:05.380 回答