所以,每个帖子都有一个相似的按钮。但我的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。如果我点击它们页面重新加载和喜欢的数量改变
答案 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 %}