Django Ajax не работает на нескольких HREF внутри цикла для шаблона Jinja2 - PullRequest
0 голосов
/ 18 марта 2019

Я работаю над системой сообщений на основе ajax, используя Django. У меня есть комнаты и сообщения в этих комнатах. Основная идея состоит в том, что слева будут комнаты пользователя, а справа будет детальный вид одной конкретной комнаты. Ajax используется для просмотра каждого сообщения комнаты.

<div class="inbox_chat">
          {% for room in rooms %}
            <div class="chat_list">
              <div class="chat_people">
                <a href="#" id="view_message" data-catid="{{ room.id }}">
                    <div class="chat_img"> <img src="https://ptetutorials.com/images/user-profile.png"> </div>
                    <div class="chat_ib">
                      <h5>{{room.course}} <span class="chat_date">{{room.timestamp}}</span></h5>
                      <p>{{room.messages.last.message}}</p>
                      <small>by <strong>{{room.messages.last.sender}}</strong></small>
                    </div>
                </a>
              </div>
            </div>
          {% endfor %}
          </div>

выше - код дзиндзя для отображения комнат. Я столкнулся с проблемой в теге href. Я могу нажать на первый результат цикла for, но во втором результате цикла for ничего не происходит.

Мой код Javascript:

{% block script %}
    $(document).ready(function(){
        $('#view_message').on('click', function(e){
            var BASE_URL = window.location.origin + window.location.pathname;
            console.log(BASE_URL);
            var room_id = $(this).attr("data-catid");
            console.log(room_id);
            $.ajax({
                url: BASE_URL + "view_message/",
                method: 'GET',
                data: {
                    room_id: room_id
                }
            });
        });
    });
{% endblock %}

1 Ответ

2 голосов
/ 18 марта 2019

id атрибуты должны быть уникальными во всей HTML-странице. jQuery возвращает только первый элемент, когда вы используете селектор #.... Используйте класс или атрибут данных вместо атрибута id.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...