jQuery Ajax 回调无法识别 $(this) 对象

jQuery Ajax callback doesn't recognise $(this) object

这是我的代码

$(".library-fields-container div.field-content img").click(function(){
    var nid = getImageNodeID($(this).siblings(".image-span").text());
    $.ajax({
        url: Drupal.settings.basePath + 'views/ajax',
        type: 'POST',
        dataType: 'json',
        data: 'view_name=fehrest&view_display_id=block_1&view_args='+nid,
        success: function(response) {
            var output = response[1].data;
            alert(output);  
            $(this).hide();
        },
        error: function(data) {
            alert('An error occured!');
        }
      });
});  

我确定 output 变量打印了一些东西并且它不是空的,因为警报功能显示了它的内容。

问题是它没有隐藏 $(this) 而当我把

$(this).hide();

在 Ajax 调用之前的点击事件开始时,它会隐藏图像。

Ajax 对象的 $(this) 回调函数是什么?

在此上下文中 - this 不是元素。 在 ajax 调用 thisself 变量之前保存。喜欢

var self = this;
$.ajax({
    ...
    success: function(response) {
        var output = response[1].data;
        alert(output);  
        $(self).hide();
    }
});
$(".library-fields-container div.field-content img").click(function(){
var target = $(this);
var nid = getImageNodeID($(this).siblings(".image-span").text());
$.ajax({
    url: Drupal.settings.basePath + 'views/ajax',
    type: 'POST',
    dataType: 'json',
    data: 'view_name=fehrest&view_display_id=block_1&view_args='+nid,
    success: function(response) {
        var output = response[1].data;
        alert(output);  
        target.hide();
    },
    error: function(data) {
        alert('An error occured!');
    }
  });
});