像按钮显示多次

时间:2017-11-28 10:09:14

标签: javascript jquery

我正在尝试创建一个类似的按钮,这是我到目前为止所做的,

$(".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按钮的次数与游戏次数相同。

我们如何防止这种情况发生?谢谢 。 。

1 个答案:

答案 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
});