Можно создать дубликат:
Passing values to onclickЗакрытие в Javascript
У меня есть 100 элементов с идентификаторами divNum0
, ..., divNum99
. При каждом щелчке следует позвонить doTask
с правильным параметром.
Код, к сожалению, не закрывает i, и, следовательно, doTask
вызывается со 100 для всех элементов.
function doTask(x) {alert(x);}
for (var i=0; i<100; ++i) {
document.getElementById('divNum'+i).addEventListener('click',function() {doTask(i);},false);
}
Есть ли каким-то образом я могу сделать функцию с именем с правильными параметрами?
, если вам не нужно, чтобы добавить больше одного слушателя событий, вы должны назначить 'onclick', как это работает во всех браузерах – Christoph
я также предлагаю рассмотреть, чтобы использовать делегирование событий и поставить обработчик щелчка только родительский элемент. Когда происходит событие клика, вы просто проверяете цель и выполняете требуемую функциональность. –