2011-08-06 10 views
1

多くの場合、jQuery関数を実行したり、jQueryデータ型のようなjQueryプラグインを初期化したり、関数の終了後にコードを実行したりしたい場合があります。 hideやfadeinなどのjQuery関数やその他の変換関数は、これを行うためにオプションのコールバックパラメータを使用します。しかし、連鎖を許すために 'this'オブジェクトを返すだけの他のjQuery関数があります。どのようなjQuery関数を呼び出した後でもコールバックを取る何らかの汎用関数を実行するために、連鎖やその他のメソッドを使用する方法があるかどうかを知りたいと思います。以下のようなjquery chainingジェネリックコールバック関数

何か:

$("#element").datatable().executeCallback(myCallbackFunction); 

答えて

0

これはあまり堅牢ではありませんが、汎用コールバックに必要なものです。

$.fn.executeCallback = function(fn) 
{ 
    window[fn](); 
} 
2

関数の引数をとり、オブジェクトにマッチしたすべてに適用し、オブジェクト自体を返すプラグインが必要です。シンプルなチェーン可能 "genericCallback" 実装:

function makeRed() { 
    $(this).css("border", "1px solid red"); 
} 

$.fn.genericCallback = function(fn) { 
    if(!typeof fn === 'function') { 
     console.log('Function expected, got a ' + typeof fn); 
    } 
    return this.each(function() { 
     fn.apply(this); 
    }); 
}; 

$("div").genericCallback(makeRed); 

You can try it here.