использование .each для выполнения массива функций на .resize - PullRequest
0 голосов
/ 11 сентября 2011

В объекте с именем 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

1 Ответ

2 голосов
/ 11 сентября 2011

у вас небольшая ошибка; должно быть $.each(arr, function() { Response.action(this); });

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