jQuery removeClass 和 addClass 不工作
jQuery removeClass and addClass not working
我创建了一个按钮,当用户点击它时,当前的 class 应该被替换为一个新按钮,反之亦然。
但是 addClass 或 removeClass 都没有显示任何效果。我在控制台日志中没有看到任何错误或警告消息。
JQuery代码:
$('.vote_btn').click(function(){
$.ajax({
url:'/joseph/pages/votes.php',
type: 'post',
//dataType:'json',
data:{'comment_id':$(this).data('commentid')},
success: function(data){
if(data == 'up'){
$(this).removeClass('fa-thumbs-o-up').addClass('fa-thumbs-up');
} else if(data == 'reversed') {
$(this).removeClass('fa-thumbs-up').addClass('fa-thumbs-o-up');
} else {
alert(data);
}
}
});
});
HTML代码:
<span id="<?=$comment['id']?>" class="fa fa-thumbs-o-up vote_btn" data-commentid="<?=$comment['id']?>" data-postid="<?=$getpost['post_id']?>" data-who="<?=$comment['commenter_id']?>"></span>
jQuery 对象 $(this)
不再引用单击的 .vote_btn
。在成功回调中,将单击的按钮存储在一个变量中,并在回调中使用此变量:
$('.vote_btn').click(function(){
var _this = $(this);
$.ajax({
url:'/joseph/pages/votes.php',
type: 'post',
//dataType:'json',
data:{'comment_id':_this.data('commentid')},
success: function(data){
if(data == 'up'){
_this.removeClass('fa-thumbs-o-up').addClass('fa-thumbs-up');
} else if(data == 'reversed') {
_this.removeClass('fa-thumbs-up').addClass('fa-thumbs-o-up');
} else {
alert(data);
}
}
});
});
希望对您有所帮助。
试试这行得通:
$('.vote_btn').click(function(){
var curEvent=$(this);
$.ajax({
url:'/joseph/pages/votes.php',
type: 'post',
//dataType:'json',
data:{'comment_id':$(this).data('commentid')},
success: function(data){
if(data == 'up'){
$(curEvent).removeClass('fa-thumbs-o-up').addClass('fa-thumbs-up');
} else if(data == 'reversed') {
$(curEvent).removeClass('fa-thumbs-up').addClass('fa-thumbs-o-up');
} else {
alert(data);
}
}
});
});
我创建了一个按钮,当用户点击它时,当前的 class 应该被替换为一个新按钮,反之亦然。 但是 addClass 或 removeClass 都没有显示任何效果。我在控制台日志中没有看到任何错误或警告消息。
JQuery代码:
$('.vote_btn').click(function(){
$.ajax({
url:'/joseph/pages/votes.php',
type: 'post',
//dataType:'json',
data:{'comment_id':$(this).data('commentid')},
success: function(data){
if(data == 'up'){
$(this).removeClass('fa-thumbs-o-up').addClass('fa-thumbs-up');
} else if(data == 'reversed') {
$(this).removeClass('fa-thumbs-up').addClass('fa-thumbs-o-up');
} else {
alert(data);
}
}
});
});
HTML代码:
<span id="<?=$comment['id']?>" class="fa fa-thumbs-o-up vote_btn" data-commentid="<?=$comment['id']?>" data-postid="<?=$getpost['post_id']?>" data-who="<?=$comment['commenter_id']?>"></span>
jQuery 对象 $(this)
不再引用单击的 .vote_btn
。在成功回调中,将单击的按钮存储在一个变量中,并在回调中使用此变量:
$('.vote_btn').click(function(){
var _this = $(this);
$.ajax({
url:'/joseph/pages/votes.php',
type: 'post',
//dataType:'json',
data:{'comment_id':_this.data('commentid')},
success: function(data){
if(data == 'up'){
_this.removeClass('fa-thumbs-o-up').addClass('fa-thumbs-up');
} else if(data == 'reversed') {
_this.removeClass('fa-thumbs-up').addClass('fa-thumbs-o-up');
} else {
alert(data);
}
}
});
});
希望对您有所帮助。
试试这行得通:
$('.vote_btn').click(function(){
var curEvent=$(this);
$.ajax({
url:'/joseph/pages/votes.php',
type: 'post',
//dataType:'json',
data:{'comment_id':$(this).data('commentid')},
success: function(data){
if(data == 'up'){
$(curEvent).removeClass('fa-thumbs-o-up').addClass('fa-thumbs-up');
} else if(data == 'reversed') {
$(curEvent).removeClass('fa-thumbs-up').addClass('fa-thumbs-o-up');
} else {
alert(data);
}
}
});
});