对于帖子

时间:2016-06-26 10:22:29

标签: javascript jquery ajax django posts

所以,每个帖子都有一个相似的按钮。但我的ajax捕获事件只针对新的一个帖子。 请解释一下为什么ajax不会为磁带中的每个帖子制作它。以及如何解决它。

这是一个ajax代码。

{% block jquery %}
  $("#po-like").click(function(event){
      event.preventDefault();
      $.ajax({
          url: $("#po-like-href").attr('href'),
          success: function(){
          },
          error: function(response, error){
          }
       })
  });
{% endblock %}

这是我的帖子磁带。

{% for post in tape %}
    ...
    {{ post.text }}
    ...
    <a id="po-like-href" href="/like_post/{{ post.id }}/">
        <img id="po-like"  src="{% static "" %}"/>
    </a>
{% endfor %}

所有其他帖子就像按钮一样工作,好像根本没有ajax。如果我点击它们页面重新加载和喜欢的数量改变

1 个答案:

答案 0 :(得分:1)

这是因为所有id's标记中的a相同。您可以在html页面中只有一个 uniq #id 。相反,您可以将其更改为.class

   {% block jquery %}
      $(".po-like").click(function(event){
          //changing #id to .class
          //added the below line
          var img = $(this);
          event.preventDefault();
          $.ajax({
              url: img.parent().attr('href'),
              success: function(){
              },
              error: function(response, error){
              }
           })
      });
    {% endblock %}
{% for post in tape %}
    ...
    {{ post.text }}
    ...
    //changing #id to .class
    <a class="po-like-href" href="/like_post/{{ post.id }}/">
        <img class="po-like"  src="{% static "" %}"/>
    </a>
{% endfor %}