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);

詳細の1つは、実際にはハンドラーがインストールされた順序で呼び出されたとしても、ハンドラーが特定の順序で呼び出されるという保証はないということです。したがって、最初のハンドラーが最初に呼び出されることを保証する必要がある場合は、次のことを行う必要があります。

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