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

Javascript 使用.each在.resize上执行函数数组,javascript,jquery,arrays,object,each,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 ); }); //

在名为
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
}
(我们在年就解决了这个问题。)

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

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

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


试过了(谢谢),但也不行。值得注意的是,如果我将回调更改为
Response.actionSet([myfunc1(),myfunc2()])然后它在
.ready
上工作,但在
上不工作。调整大小
。如果没有括号,
Response.actionSet
什么也不提供
Response.action
只对
有效。resize
不带括号,所以我想这应该是一样的。@ryanve好吧,如果你添加
()
,你就在现场调用这些函数(甚至在输入
actionSet
之前),所以它显然是“onready”的,duh
:)
Alxandr,@Šime Vidas你们都是摇滚明星!!
Response.actionSet = function(arr) {
    if(!$.isArray(arr)) return false;
    $.each(arr, function() { Response.action(this); });
    return arr;
};