Helpers for vanilla JavaScript.
Download a latest package or use Composer:
composer require frontpack/lucy.js
Include src/dom.js.
LucyDom.getById(document,'element-id');LucyDom.findAll(document,'selector');// returns elements collectionLucyDom.find(document,'selector');// returns one elementLucyDom.getClosest(element,'selector');LucyDom.each(document,'selector',function(element,info){console.log(info.index);console.log(info.isFirst);console.log(info.isLast);});LucyDom.hasClass(element,'class-name');LucyDom.addClass(element,'class-name');LucyDom.removeClass(element,'class-name');LucyDom.toggleClass(element,'class-name');Element events
LucyDom.onEvent(eventTarget,'eventName',handler);// for exampleLucyDom.onEvent(myElement,'click',function(event){console.log('Clicked!');console.log(this);// this === myElement});Delegated events
LucyDom.onChildEvent(eventTarget,'child selector','eventName',handler);// for exampleLucyDom.onChildEvent(myElement,'a.ajax','click',function(event){console.log('AJAX click');console.log(this);// this === child});Include src/bem.js.
varbem=newLucyBem(document);// blocksbem.eachBlock('block',function(block,info){block.hasModifier('xyz');block.addModifier('xyz');block.removeModifier('xyz');block.toggleModifier('xyz');console.log(info.index);console.log(info.isFirst);console.log(info.isLast);});// eventsbem.onElementEvent('block','element','click',function(element,event){element.hasModifier('xyz');element.addModifier('xyz');element.removeModifier('xyz');element.toggleModifier('xyz');});Include src/modal.js.
varmyModal=newLucyModal('My Title',function(modal){console.log('Modal opened!');modal.title.textContent='Hello Title!';modal.body.innerHTML='<p>Modal content</p>';modal.closeButton.setAttribute('title','Close this');},function(modal){console.log('Modal closed!');});License: New BSD License
Author: Jan Pecha, https://www.janpecha.cz/