我正在尝试在一些 ajax 之后向我的按钮添加一个 css 类:
$('a.vote-up-0').click(function() {
var id = $(this).siblings('.reply-id').val();
var ajax_auth_token = $('#auth_token').val();
$.post('user/?action=ajax', {
vote_type: 'up',
reply_id: id,
auth_token: ajax_auth_token
}, function(data, return_status) {
var json_data = jQuery.parseJSON(data);
switch(json_data.r_message)
{
case "success":
output = "Yay it works!"; // change
alert(output);
$(this).addClass('vote-up-1'); // ** the culprit **
break;
警报有效,但它不会向其添加类 vote-up-1。页面上有多个相同类别的实例(即 vote-up-0),因此如果我将(this)更改为“vote-up-0”,它会更改所有实例。有人有什么想法吗?
最佳答案
在“点击”处理程序的顶部,存储 this
值:
var theButton = this;
然后,在您的“.post()”处理程序中:
$(theButton).addClass('vote-up-1');
问题是当 jQuery 调用您的“.post()”处理程序时,this
不会引用按钮。因此,您将一个副本保存到一个局部变量中,它会在适当的时候等待处理程序。
关于jquery - 在jquery中为按钮添加一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5695119/