我有这个自定义插件事件回调,它在所有页面上触发
$(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 */
}
有没有更清洁的方法来实现这一目标?
答案 0 :(得分:1)
如果您只想要额外的功能,可以添加一个新的处理程序。它不会覆盖现有的处理程序
$(document).on('pjax.complete', specific.myfunction);
一个细节是,无法保证以特定顺序调用处理程序,即使在实践中,它们是按照安装顺序调用的。因此,如果您需要保证首先调用第一个处理程序,则必须执行以下操作。
$(document).off('pjax.complete', all.myfunction);
$(document).on('pjax.complete', function() {
all.myfunction();
specific.myfunction();
});