Как вы применяете функцию jquery с именем функции в качестве параметра? - PullRequest
0 голосов
/ 13 января 2011

Если у вас есть переменное количество плагинов jQuery в формате:

(function($){
    $.fn.toolSet_themeOne = function () {
        // params
    };
})(jQuery);


(function($){
    $.fn.toolSet_themeTwo = function () {
        // params
    };
})(jQuery);

Если определение каждого плагина не гарантируется одинаковым и может содержать некоторую степень изменения имени после подчеркивания, как их можно применить в такой ситуации:

var themeApply = function (jQueryCollection, objSettings, pluginName) {
    // this does not work and reports pluginName is not a function
    jQueryCollection.pluginName(objSettings);
    // $.fn[pluginName] is reported as a function
};

Я подумал использовать другой вопрос в качестве руководства, но не вижу, как правильно его охватить. Любые указатели будут с благодарностью.

Спасибо:)

EDIT: Для тех, кто интересуется, какая функция внутри, это пример (извлеченный из другого ответа SO, для которого я не могу найти немедленную ссылку:

(function($){

    $.fn.toolSet_themeOne = function () {

        var methods = [
            update: update
        ];

        var init = function (options) {
            // normal jquery initialisation here
        };

        var update = function (data) {
            // do something with data
            // if not initialising, but calling after initialisation
        };

        // what do we do on initialisation?
        if(arguments.length > 0) {
    if('string' === typeof(arguments[0]) && 'undefined' !== typeof(methods[arguments[0]])) {
        var args = Array.prototype.slice.call(arguments);  
        args = args.shift();
        methods[arguments[0]].apply(this,args);
    } else if('object' === typeof(arguments[0])) {
        init.apply(this, arguments);
    }
    } else {
    init.apply(this, arguments);
    }
    return this;
    };
})(jQuery);

1 Ответ

0 голосов
/ 13 января 2011

Не работает jQueryCollection[pluginName](objSettings)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...