即。
$("#savenew").live('click', function(e) {
var user=<?php echo $user?>;
$.ajax({
type: "POST",
url: "actions/sub.php",
data:{user: user} ,
success: function(){
$('#savenew').html('<span>Unsubscribe</span>');
$(this).attr('id', 'clean'); // this my problem my problem
}
});
});
ajax请求后的id,没有从savenew更改为clean,但html完全正常,所以我知道ajax请求正在运行。你怎么解决问题呢?
答案 0 :(得分:2)
您只需要保存context
(通过context
option for $.ajax()
),以便this
仍然引用#savenew
,如下所示:
$("#savenew").live('click', function(e) {
var user=<?php echo $user?>;
$.ajax({
context: this, //add this!
type: "POST",
url: "actions/sub.php",
data:{user: user} ,
success: function(){
$(this).attr('id', 'clean').html('<span>Unsubscribe</span>');
}
});
});
另请注意,这可以让您对链条进行整理和清理。
答案 1 :(得分:1)
$(this)
内的 success: function(){
未引用$('#savenew')
。
正如您在上面的行中所做的那样,您需要通过id:
来引用它$('#savenew').attr('id', 'clean');