Пустой селектор - Создание плагина jQuery - PullRequest
5 голосов
/ 25 февраля 2011

Как создать плагин, который не требует селектора, например:

$.pluginName();

Из этого:

(function($)
{
    $.fn.pluginName = function(options) 
    {
            // options
    };

    // code

})(jQuery);

Вместо использования этого (чтобы предотвратить конфликт других библиотекс $):

jQuery.pluginName = function(name, value, options) 
{
   // code
};

Поскольку, если я сделаю это: $.pluginName(), Firebug скажет мне, что $.pluginName() не является функцией, если я не добавлю это: $.('a selector goes here').pluginName();.

Ответы [ 3 ]

6 голосов
/ 25 февраля 2011

Поместите его в глобальный jQuery вместо прототипа.

(function($)
{
//---v----------------namespacing your function in the jQuery namespace
    $.pluginName = function(options) 
    {
            // options
    };

    // code

})(jQuery);

Имейте в виду, что this внутри вашей функции не будет объектом jQuery.Это будет относиться к глобальной функции jQuery.

2 голосов
/ 25 февраля 2011

Вы используете

(function($)
 {
        $.pluginName = function(options) 
        {
                // options
        };

            // code

})(jQuery);

Это немедленно выполняемая анонимная функция, которая принимает один аргумент и связана с параметром $, для которого передается значение jQuery.

0 голосов
/ 08 марта 2014

вы также можете использовать $ .extend ({f1: function () {}, f2: function () {}}), если вы хотите добавить более 1 плагинов вместе. это сделает ваш код более чистым.

...