jQuery - сделать глобальную переменную доступной для нескольких плагинов - PullRequest
4 голосов
/ 02 декабря 2009

У меня есть набор плагинов jQuery, которые я создаю для веб-сайта.

Все эти плагины имеют общую функциональность, заключающуюся в вызовах $ .getJSON ().

URL, передаваемый в этих вызовах, различается в зависимости от Dev, QA и производственных сред.

Я хотел бы сохранить URL-адрес в центральном месте, чтобы его можно было легко изменить.

Где должен храниться URL? Я не хочу хранить URL в каждом отдельном плагине. Можно ли определить его как глобальную переменную или лучше сделать его аргументом, передаваемым плагину?

1 Ответ

15 голосов
/ 02 декабря 2009

Я бы порекомендовал вам использовать литерал объекта, прикрепленный к объекту jQuery. Просто обязательно включите его перед всеми вашими плагинами:

jQuery.YourCompany = {
   url: "http://thedomain.com"
};

Тогда везде, где вам это нужно, просто используйте

jQuery.YourCompany.url
// or
$.YourCompany.url

Если вы используете объекты / классы в сочетании с функциями $.fn, вы также можете использовать эту глобальную переменную в качестве пространства имен:

jQuery.YourCompany.PluginOne = function(el){
 ....
}

// But not on the fn object:

jQuery.fn.pluginOne = function(){
    return this.each( function() {
       var po = new jQuery.YourCompany.PluginOne(this);
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...