使用.each在.resize上执行函数数组

时间:2011-09-10 22:41:53

标签: javascript jquery arrays object each

在名为Response的对象中,这可以同时触发.ready.resize上的函数...

Response.action = function ( func ) {
    if ( typeof func !== 'function' ) { return false; } // If func is not a function, return false.
        $(function () { func(); $(window).resize( func ); }); // 
    return func;
}; // Response.action

...用它来称呼它:

Response.action( myfunc );
function myfunc() { 
    //do stuff
}

(我们在this thread中完成了这项工作。)

我想制作另一个版本,可以对数组的函数执行相同的操作,使用方式如下:

Response.actionSet( [myfunc1, myfunc2] );
function myfunc1() { 
    //do stuff
}
function myfunc2() { 
    //do stuff
}

我尝试了如下以及我能想象到的所有其他咒语,但我没有得到它的工作。也没有错误消息。任何人都可以推荐如何使这个工作:

Response.actionSet = function ( arr ) {
        if ( arr.isArray !== true ) { return false; } // If arr is not an array, return false.
        $.each(arr, Response.action(this)); // iterate over arr array
        return arr;
}; // Response.actionSet

1 个答案:

答案 0 :(得分:2)

你有一个小错误;它应该是$.each(arr, function() { Response.action(this); });

Response.actionSet = function(arr) {
    if(!$.isArray(arr)) return false;
    $.each(arr, function() { Response.action(this); });
    return arr;
};