我正在研究Django项目。我有一个显示所有可用帖子的模板。用户可以喜欢发帖。一切都很好。但我遇到了一个问题。由于我在用户点击它时使用ajax来更改like按钮的状态,我发现当用户点击其中一个显示帖子的like按钮时,显示的posts对象的所有类似按钮都会受到影响。我希望更改只发生在用户点击的类似按钮上。并非所有显示的帖子对象的按钮
我的HTML模板示例看起来像这样。
{% for post in allpost %} <!--for loop to get all post objects in data base-->
{{post.tittle}}
{{post.content}}
{{post.type}}
<!-- like button for users to be able to like post they fine interesting-->
<a href="" data-href="{% url 'post:api_like' slug=post.slug %}">
<button id="like">like</button></a>
{% endfor %}
所以你可以看到我喜欢的按钮id不是动态的,这是我遇到这个问题的原因之一。如何为for循环帖子中的每个like按钮生成动态按钮ID?
请帮帮我
答案 0 :(得分:1)
HTML中的标识符必须唯一,而是指定一个CSS类,然后使用它来附加事件处理程序。
如果您想要保留可以使用data-*
attributes方法获取的任意数据,我建议您使用自定义.data()
,而不是使用 id 属性。
{% for post in allpost %} <!--for loop to get all post objects in data base-->
<!-- like button for users to be able to like post they fine interesting-->
<button type="button" class="like" data-id="{{post.id}}">like</button>
{% endfor %}
这是一个jQuery 脚本,用于附加事件处理程序并获取click
事件的数据
$(function (){
$('.like').on('click', function(){
//Fetch Id
var id = $(this).data('id');
});
});