我想在POST成功后点击的元素上添加一个类。由于某种原因,既没有“这个”也没有“'add_favorite',这个”正在添加“收藏”。其他一切都很好。
有什么想法吗?
$('.add_favorite').click(function(){
expert_id = $(this).attr('data-expert-id');
user_id = $(document.body).attr('data-user-id');
//console.log(user_id);
var data = {
'expert_id' : expert_id,
'user_id' : user_id
}
var url = "/submit-fav.php";
$.ajax({
type: "POST",
url: url,
data: data,
success: function(data)
{
$(this).addClass('favorited');
}
});
return false;
});
答案 0 :(得分:2)
你需要保留原文的本地副本"这个"为了从成功回调的范围内访问它(它有一个不同的"这个")。
$('.add_favorite').click(function(){
var $add_favorite = $(this);
var expert_id = $add_favorite.attr('data-expert-id');
var user_id = $(document.body).attr('data-user-id');
//console.log(user_id);
var data = {
'expert_id' : expert_id,
'user_id' : user_id
}
var url = "/submit-fav.php";
$.ajax({
type: "POST",
url: url,
data: data,
success: function(data)
{
$add_favorite.addClass('favorited');
}
});
return false;
});
注意:
$
var
声明所有局部变量,或者修改/污染全局命名空间。