【发布时间】:2021-03-14 13:00:53
【问题描述】:
我已添加到产品的愿望清单中。(django 项目) 如果用户将产品添加到此列表中,他们会单击心形图标。 如果用户已经将该产品添加到列表中,则心形图标为红色,如果该产品不在用户的收藏列表中,则心形图标为白色。 每次删除或将其添加到列表时,我都想更改图标的颜色。 在我写的代码中,这个操作只进行了一次,如果同时再次点击,颜色不会发生变化。
{% if request.user in product.favourite.all %}
<a href="{% url 'home:favourite' product.id %}"
class="favourite-product fa-btn{{ product.id }}"
data-id='{{ product.id }}' data-text="remove">
<i class="fa fa-heart test{{ product.id }}" style="color:red"></i></a>
{% else %}
<a href="{% url 'home:favourite' product.id %}"
class="favourite-product fa-btn{{ product.id }}"
data-id='{{ product.id }}' data-text="add">
<i class="fa fa-heart test{{ product.id }}" style="color:#eee;"></i></a>
{% endif %}
# ajax
$(document).on('click', '.favourite-product', function (e) {
e.preventDefault();
const likeText = $(`.fa-btn${product_id}`).attr("data-text");
const trim = $.trim(likeText)
$.ajax({
url: $(this).attr('href'),
type: 'GET',
data: {
'product': product_id
},
success: function (response) {
if (trim === 'add') {
$(`.test${product_id}`).css({"color": "red"});
} else {
$(`.test${product_id}`).css({"color": "#eee"});
}
},
error: function (response) {
alert("error");
}
});
});
【问题讨论】:
标签: javascript jquery django ajax