我正在尝试创建一个类似的按钮,这是我到目前为止所做的,
$(".click-like").click(function(){
var curr_elem = $(this) ;
$.get($(this).attr('href-like'), function(data){
var my_div = $(data).find(".click-like");
$(curr_elem).html(my_div);
});
return false; // prevent loading URL from href
});
这是html。这是在'for'循环中生成的,循环遍历多个数据
<a class="click-like" href-like="URL">{% if request.user in answer.likes.all %}Liked{% else %}Like{% endif %}</a>
因为我有这样的按钮在For循环中通过多个游戏循环,所以它出现在每个游戏的下方。当我点击Like
时,它返回Like或Liked按钮的次数与游戏次数相同。
我们如何防止这种情况发生?谢谢 。 。
答案 0 :(得分:0)
问题似乎是这一行
var my_div = $(data).find(".click-like"); //you are finding all the .click-like instead of the one you clicked
$(curr_elem).html(my_div);
将其替换为
$(".click-like").click(function(){
var curr_elem = $(this) ;
var hrefLike = curr_elem.attr('href-like')
$.get( hrefLike , function(data){
var my_div = $( data ).find( ".click-like[href-like='" + hrefLike + "']"); //only get the specific one with url
$( curr_elem ).html( my_div );
});
return false; // prevent loading URL from href
});