单击.class按钮

时间:2015-03-23 12:57:53

标签: jquery ajax

我有一个带有多个相似按钮的div,我有以下代码,当用户按下其中一个相似按钮时,它会返回data-catid值。

$('.likes').click(function(){
            var catid;
            catid = $(this).attr("data-catid");
             $.get('/rmb/like_image/', {like_id: catid}, function(data){
                       $('.likes').html(data);
                       $('.likes').attr('disabled','disabled');
                   });
        });

我的问题不是将其返回到按下的唯一按钮,而是将值返回到所有按钮。我知道这与这一行有关

$('.likes').html(data);

但我不确定如何解决它。

有什么建议吗? 感谢

3 个答案:

答案 0 :(得分:1)

您需要更新当前单击的元素,因此使用闭包变量存储对单击元素的引用,然后在ajax回调上使用该引用。

$('.likes').click(function () {
    var $this = $(this),
        catid = $this.attr("data-catid");
    $.get('/rmb/like_image/', {
        like_id: catid
    }, function (data) {
        $this.html(data).prop('disabled', true);
    });
});

答案 1 :(得分:1)

只更新当前元素。

$('.likes').click(function () {
var self = $(this);
    var catid = self.attr("data-catid");
$.get('/rmb/like_image/', {
    like_id: catid
  }, function (data) {
    self.html(data).prop('disabled', true);
  });
});

答案 2 :(得分:0)

$('.likes').click(function(){
        var catid;
        thatVar = $(this);
        catid = $(this).attr("data-catid");            
        $.get('/rmb/like_image/', {like_id: catid}, function(data){
                   thatVar.html(data);
                   thatVar.attr('disabled','disabled');
               });
    });

你能试试这个吗?