Эта задача сводит меня с ума... У меня есть цикл, который добавляет слушателя событий к объекту SVG. Объект представляет собой небольшой круг, и мне нужно добавить события mouseover и mouseout для каждого из 10 кругов.
Моя первая проблема заключается в стандартном замыкании диапазона - поскольку все слушатели добавлены в один и тот же цикл, все они видят одно и то же недопустимое значение переменной цикла. Я могу исправить это, я думаю, но вторая проблема заключается в том, что я должен передать 'event' слушателям, и я не могу найти способ исправить обе эти проблемы одновременно.
Я пробовал различные версии этого:
for(month = 0; month < nMonths; month++) {
...
shape.addEventListener(
"mouseover",
(function(event, index) { popup_on(event, foo, index); })(event, month),
false);
group.appendChild(shape);
}
Эта конкретная версия дает мне "событие не определено". popup_on
является настоящим обработчиком и должен получать event
и текущее значение month
. Есть идеи, как я должен это делать? Спасибо.