我有一个ajax脚本,成功后,文本应该会改变。
$(document).on('click','.favorite', function(){
$URLtitle = $(this).attr('data-image-URLtitle');
$username = $(this).attr('data-username');
$token = $('meta[name=csrf-token]').attr("content");
$(this).text('test text 1');
$.ajax({
type: "POST",
url: host + '/' + $username + '/' + $URLtitle + '/favorite/',
data: {username: $username, URLtitle: $URLtitle, _token:$token},
success: function(res) {
$(this).text('test text 2'); alert('success');
}
});
if ( $(this).attr('data-fav') == 0) {
$(this).data('data-fav', 1);
} else if ( $(this).attr('data-fav') == 1) {
$(this).data('data-fav', 0);
}
});
如您所见,此示例中有两个$(this).text
,一个在开始,一个在成功之后。
但是,即使我收到成功警报,该文本也变成“测试文本1”而不是“测试文本2”。发生了什么事?