addEventListener
сводилась к тому, что JSHint (с дуру сказал JSCS) предупреждает об наличии объявления функции в цикле (Don't make functions within a loop), что не особо хорошо. То есть требуется создавать функцию вне цикла и вызывать её.(function() {
var clickHandler = function() {
console.log('qwe');
};
for (var i = 0; i < 10; i++) {
document.addEventListener('click', clickHandler);
}
})();
npm i
и bower i
установит все пакеты, описанные в dependencies и devDependencies. Этот процесс можно контролировать через npm i --development
или npm i --production
.
Как ни крути, но меню, допустим, из 5-10 пунктов и у каждого из них класс - не круто.
По поводу задевания других списков можно (нужно!) использовать какую-нибудь методику (я предпочитаю помесь RSCSS и здравого смысла), то есть блок меню - это компонент, список - это элемент. Если же в блоке меню есть несколько списков, то вход вступает "разновидность", либо разделение на компоненты и, как следствие, появление вложенных компонентов. Здравый смысл заключается в том, что я не пишу li[class=item] в ul[class=list].
По сути своей, получается альтернатива БЭМ, но без мною не любимых __ (угнетают классы
menu__item menu__item_state_current
и т.д.).По поводу header могу сказать, что все зависит от разработчика и контекста использования (компонент или глобально).
Возможно, мой подход критичен для вас, но почти такую модель предлагает Bootstrap и я считаю её правильной. Раз Bootstrap ( и Foundation, UIkit) не пишет класс у каждого li, то это дурной тон. Не нужно описывать мне то, что Bootstrap - это не показатель и прочее.
А вообще, отвечу так: каждый верстает, кто как хочет и какого-то чек-листа не существует - лишь общие рекомендации.