2011-08-06 112 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.