jquery链接泛型回调函数

时间:2011-08-06 01:11:10

标签: javascript jquery jquery-plugins

我常常遇到过我想要执行jQuery函数或初始化jQuery插件(如jQuery数据表)并希望在函数完成后执行代码的情况。 jQuery函数(如hide或fadein或其他转换函数)使用可选的回调参数来完成此操作。然而,还有其他jQuery函数只返回'this'对象以允许链接。我想知道是否有一种方法使用链接或其他方法来执行某种泛型函数,该函数在我调用的任何jQuery函数完成后进行回调。

类似的东西:

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

3 个答案:

答案 0 :(得分:2)

看一下jquery队列http://api.jquery.com/queue/,这可能对你有帮助。

答案 1 :(得分: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.

答案 2 :(得分:0)

这不是很强大,但它可以满足你想要的通用回调。

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