Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Единственное задание имени плагина в шаблоне (https://javascript.ru/forum/jquery/44373-edinstvennoe-zadanie-imeni-plagina-v-shablone.html)

ColorAnt 17.01.2014 12:05

Единственное задание имени плагина в шаблоне
 
Возможно кто-то сталкивался с проблемой.
Пишу шаблон для создания плагинов jQuery.
Имя плагина много где используется:
1. Непосредственно само добавление в пространство имен $.fn;
2. Объявление и удаление пространства имен событий;
3. Добавление и удаление пространства имен data;
и т.д.

Дополнительные сложности:
1. Хочется проверять, что данное имя уже не пересекается с другими плагинами и, что плагин не подключен на странице дважды.
2. Чтобы IDE (Idea) определяла в других js-файлах, что имя такое существует, если просто написать
$.fn[pluginName] = ...
то она будет считать, что функции $().pluginName() нет (т.е. подчеркивать в исходниках)
3. Главное хочется, чтобы имя плагина задавалось минимальное число раз, в идеале 1, и не нужно было искать по всему шаблону "где еще переименовать".

Пока пришел вот к такой конструкции с двумя определениями "delayKeyup"

var name = 'delayKeyup';    
$.fn.       delayKeyup = !(name in $.fn) ? {} : (function(){throw new Error('Plugin name ' + name + ' already reserved or you try iteratively connect plugin');})();

(function install(pluginName) {
    $.fn[pluginName] = ...
})(name);

Может быть кто-то сталкивался с более элегантным решением?


Часовой пояс GMT +3, время: 12:51.