Я пытаюсь получить доступ к идентификатору данных моего div по клику. Доменные модели - это проекты и задачи для пользователей. Это моя текущая реализация (рабочая):
// script-tag bottom of user-page.html, before footer include (jinja2)
const projects = '{{projects | count}}';
for (let i = 1; i <= projects; i++) {
const click_id = `#clickable-${i}`;
$(click_id).on("click", () => {
const data = $(click_id).data();
redirectToProjectPage(data);
});
}
и html:
{% for project in projects %}
<div id="clickable-{{loop.index}}" data-id="{{project.id}}" style="display:inline-block;">
... stuff.
</div>
{% endfor %}
Теперь я попытался реализовать рефакторинг с использованием jQuery .each и jQuery .on, просматривая SO и ссылаясь на документацию jQuery, но следующий код выдает undefined для меня. Примечание: в html я поменял идентификатор на класс «clickable».
$('.clickable').each(() => {
const $this = $(this);
$this.on('click', () => {
const id = $(this).data('id')
console.log(id) // produces undefined
redirectToProjectPage(id)
});
});
Как мне продолжить?