Обычный способ решения этой проблемы - делегирование событий. Если вы подключите событие click
к контейнеру, который содержит все эти .default
элементы, вы можете ответить одним обработчиком:
document.observe('click', function(event) {
var elm;
elm = event.findElement('.default');
if (elm) {
// do your nifty stuff with the element
}
});
Это не должно быть document
, если они совместно используют какой-то контейнер более высокого уровня. Документы для Event#findElement
здесь здесь .
Кстати, у вас большая проблема с производительностью в цикле for. Вы звоните document.getElementsByClassName
на каждой итерации! Если вы используете делегирование событий, этот цикл все равно пропадает, но если по какой-то причине это не сработает, назовите его один раз , а затем переберите результат:
var defaults = document.getElementsByClassName('default');
for (i = 0; i < defaults.length; i++)