jquery ajax更新class,ajax - jQuery change css class - Stack Overflow

$('.unfollow').click(function(){

// you need keep a reference of '.unfollow' here

// otherwise you can't get it within success()

// because success() is another scope

var reference = this;

$ajax({

...

success: function() {

$(reference ).removeClass("unfollow");

$(reference ).addClass("follow");

....

}

});

});

and do same for your follow:

$('.follow').click(function(){

// you need keep a reference of '.unfollow' here

// otherwise you can't get it within success()

// because success() is another scope

var reference = this;

$ajax({

...

success: function() {

$(reference ).removeClass("follow");

$(reference ).addClass("unfollow");

....

}

});

});

Here one important thing to note that, changing of class not done immediately with click, because you're changing class within ajax success function, which will take some time to change the class. If you want to change the class instantly on click then take away those change statement outside of ajax success function.

Another important note

When you change the class of span then it becomes dynamic element to DOM. suppose you have span with class follow and on click event to span.follow you change the class to unfollow. As the .unfollow was not belong to DOM at page load so it becomes an dynamic element and on ordinary bind will not work here. Same for when you change class from unfollow to follow.

So in both case you need delegate event handler (aka live) event handler like following:

$(document).ready(function() {

$('#container').on('click', 'span.follow', function() {

var reference = this;

alert('follow');

$(reference).removeClass("follow");

$(reference).addClass("unfollow");

}).on('click', 'span.unfollow', function() {

var reference = this;

alert('unfollow');

$(reference).removeClass("unfollow");

$(reference).addClass("follow");

});

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值