Как динамически добавить функцию с изменением параметров в событие onclick? - PullRequest
0 голосов
/ 24 марта 2019

Я добавляю событие onlick динамически к ряду якорных элементов.Для каждого элемента привязки мне нужно использовать разные значения параметров в виде переменных.при использовании следующего прослушивателя событий в цикле:

anchor.addEventListener("click", () => { task(title, author) });

title и author для каждого щелчка элемента привязки заканчиваются одинаково (все они имеют значения title и author вих последняя итерация).Я хотел бы, чтобы они представляли значения переменных на определенной итерации в цикле.Вот пример минимального рабочего кода:

for (obj of objTasks) {
    title = obj.title;
    author = obj.author;

    var anchor = document.createElement("a");

    anchor.addEventListener("click", () => { task(title, author) });
}

1 Ответ

0 голосов
/ 24 марта 2019

Вы объявляете свои переменные глобально - используйте let, потому что это ограничено областью (var является областью функции):

for (let obj of objTasks) {
    let title = obj.title;
    let author = obj.author;
    let anchor = document.createElement("a");
    anchor.addEventListener("click", () => { task(title, author) });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...