Несомненно, современные библиотеки JavaScript, такие как Mootools, jQuery, обладают огромным количеством функциональности, что делает их крайне привлекательными для разработчиков. Однако стоит отметить и тот факт, что для множества разработчиков такое количество функций гораздо больше того, что нужно. Ведь согласитесь, не везде и не всегда используются, к примеру эффекты затенения, плавного открытия панелей и другие бубенчики и свистульки jQuery, хотя все они добавляются при подключении этой библиотеки (размер 50+ Кб в минимизированном виде и около 25Кб запакованный паккером).
Изменить такое положение вещей решил Роберт Ниман, который создал замечательную и очень маленькую библиотеку dLite (4,2 Кб), которая, как швейцарский нож, включает в себя джентельменский набор функций, которые способны выполнять следующие операции:
- Получение ссылок на элементы DOM.
- Выполнение событий при полной загрузке документа DOM. Аналог $.ready() в jQuery.
- Получение ссылок на элементы по имени класса.
- Добавление и удаление элементов.
- Добавление/удаление классов элементов.
- Отмена захвата событий и действий по умолчанию для элементов.
Как видите, вся выше перечисленная функциональность используется практически всеми программистами при создании скриптов.
Полный список функций библиотеки:
- elm - получение элемента по ID:
var container = elm(”container”); - elmsByClass - получение элементов по имени класса:
var externalLinks = elmsByClass(”external”, a); - DOMReady - выполнение событий при полной загрузке DOM:
DOMReady(runAtDOMLoad); - addClass - добавление класса к элементу:
addClass(elm(”container”), “active”); - removeClass - удаление класса:
removeClass(elm(”container”), “active”); - addEvent - добавление обработчика событий (слушателя) к элементу:
addEvent(elm(”container”), “click”, handleClick); - removeEvent - удаление обработчика событий:
removeEvent(elm(”container”), “click”, handleClick); - stopDefault - отмена действий по умолчанию для элементов (например ссылок):
stopDefault(evt); - cancelBubbling - остановка захвата событий (bubbling):
cancelBubbling(evt);
Мне кажется, такая библиотека будет полезна разработчикам, которым нужно всего лишь несколько полезных функций решающих общие задачи программирования в JavaScript, и которые не хотят отяжелять свои скрипты бременем ненужной функциональности.