Можно прикрепить один-единственный обработчик событий к элементу mainNav
, чтобы затем отслеживать все клики на ссылки внутри него:
var MenuNavigation = { init: function() { var navigation = document.getElementById('mainNav'); navigation.onclick = this.onclick; }, onclick: function(e) { if ( /bundle/i.test(e.target.className) ) { e.target.href = e.target.href + '?name=value'; } return true; } }
Простота и элегантность данного подхода должны быть очевидны, но у него есть и некоторое количество преимуществ в плане производительности:
«Исполнение по требованию». Второй пример выполняет немного больше действий, когда вызывается конечный обработчик событий, но это лучше, чем выполнять все действия при загрузке страницы, когда мы даже не знаем, будет ли запущен каждый конкретный обработчик событий. Ссылок на странице может быть сотня, а пользователь нажмет только одну или две из них.