Как отследить событие клика по автоматически сгенерированным HTML элементам в шаблоне через jQuery in Django - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть представление, где шаблоны вложены, а в конечном шаблоне есть сообщение с кнопками лайков и комментариев / якорными тегами.

Количество постов не фиксировано и заполняется динамически, лайки и комментарии связан с одним сообщением.

Последний дочерний шаблон извлекает созданные сообщения. Проблема с фрагментом:

---under dynamic loop---
<a href="" class="like" data-catid="{{ post.id }}">Like</a>
---under dynamic loop---

Вышеуказанный фрагмент называется jQuery:

<script>
$('.like').on("click", function (event){
        event.preventDefault();
        var postid = $(this).attr("data-catid");
        alert(postid);
        $.ajax({
.
.some Ajax stuff...
.
</script>

Теперь проблема заключается в том, что всякий раз, когда я нажимаю на любой элемент сообщения, Я получаю оповещения столько раз, сколько сообщений. Это произошло потому, что количество постов не определено и генерируется динамически. Поэтому для каждого поста у меня есть сгенерированный якорный тег с классом like. Пожалуйста, ознакомьтесь с тем, как получить только одно событие по точной ссылке, по которой щелкнул пользователь.

Пожалуйста, обратитесь к моему предыдущему сообщению, если вы хотите узнать также о моделях: Django Dynami c Проблема с фильтрацией объектов в шаблоне

1 Ответ

0 голосов
/ 28 апреля 2020

Я решил это, взяв все jQuery вещи на один уровень вверх, т.е. до родительского шаблона указанного выше дочернего шаблона. Помимо формы, которую мне пришлось использовать, CSRF Cook ie получает и отправляет функции запроса CSRF, как указано в документации Django.

...