在.get()成功后更改元素样式

时间:2011-12-01 18:16:48

标签: javascript jquery

我是JS的新手。我试图在.get()成功之后更改按钮的背景颜色。

以下是示例:http://jsfiddle.net/csTpG/95/

我的代码出了什么问题?


$('.add').click(function() {
    var productID = $(this).attr('name');
    $.get('/',{item_id : productID}, function() {
        $(this).addClass('clicked');
    });
    return false;
});

<button class="add">click me</button>

2 个答案:

答案 0 :(得分:2)

您的按钮没有name属性。

除此之外,引用$.get回调之外的点击元素以在回调中使用它:

$('.add').click(function() {
    var productID = $(this).attr('name');
      // keep a reference to the element in this scope
    var self = this;
    $.get('/',{item_id : productID}, function() {
            // use the reference in the callback
        $(self).addClass('clicked');
    });
    return false;
});

答案 1 :(得分:0)

$.get回调中,this不是您的元素。您需要先保存对this的引用。

$('.add').click(function() {
    var $this = $(this),
    productID = $this.attr('name');
    $.get('/',{item_id : productID}, function() {
        $this.addClass('clicked');
    });
    return false;
});