Собираем data данные через динамический созданный слушатель
Вообщем пишу расширение для chrome. И мне нужно из динамического созданного списка, при нажатии на определенный элемент брать из него дата данные и отправлять в другую функцию и так далее.
Вообщем вот как я пытаюсь взять данные и при компиляции я получаю ошибку, на dataset, файл ts.
Вот код:
response.data.res.forEach((res) => {
const transObj = JSON.parse(res.sourceData);
transObj.sense.forEach((sen) => {
sen.gloss.forEach((gl) => {
listTranslate.innerHTML += '<li style="padding-left:10px;border-bottom:1px solid #000;">'
+ '<a data-translate="' + gl.text + '" data-word="' + response.data.word
+ '" data-id="' + res.id + '" class="textDictionary">' + gl.text + '</a></li>';
});
});
});
let listDictionary = document.getElementsByClassName('textDictionary');
for (let i = 0; i < listDictionary.length; i++) {
listDictionary[i].addEventListener('click', (e) => {
console.log(e);
let translate = e.target.dataset.translate;
let word = e.target.dataset.word;
let dictionary_id = e.target.dataset.id;
addToDictionary(translateObj.token, user, translateObj.url, translateObj.all_text, translate, word, dictionary_id);
});
}
Ну вообщем прошу помощи.
Ответы (1 шт):
Автор решения: Moonwolf45
→ Ссылка
Вообщем вот как я смог получить data данные.
response.data.res.forEach((res) => {
const transObj = JSON.parse(res.sourceData);
transObj.sense.forEach((sen) => {
sen.gloss.forEach((gl) => {
listTranslate.innerHTML += '<li style="padding-left:10px;border-bottom:1px solid #000;"><a class="textDictionary" data-word="' + response.data.word + '" data-id="' + res.id + '" data-translate="' + gl.text + '">' + gl.text + '</a></li>';
});
});
});
let listDictionary = document.getElementsByClassName('textDictionary');
for (let i = 0; i < listDictionary.length; i++) {
listDictionary[i].addEventListener('click', () => {
addToDictionary(translateObj.token, user, translateObj.url, translateObj.all_text, listDictionary[i].getAttribute('data-translate'), listDictionary[i].getAttribute('data-word'), listDictionary[i].getAttribute('data-id'));
});
}
});