2011-08-06 30 views
1

很多時候,我遇到過我想執行jQuery函數或初始化jQuery插件(如jQuery數據表)並希望在函數完成後執行代碼的情況。 jQuery函數(如隱藏或淡入淡出或其他轉換函數)採用可選的回調參數來完成此操作。然而,還有其他的jQuery函數只是返回'this'對象以允許鏈接。我想知道是否有一種方法使用鏈接或其他方法來執行某種通用函數,該函數會在我調用的任何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.