如何访问$(this)里面的甜警报,里面的AJAX成功

how to access the $(this) inside sweet alert, inside AJAX success

本文关键字:成功 AJAX 何访问 this 访问      更新时间:2023-09-26

我想删除被点击元素的父元素。我首先使用甜蜜警报来获取警报,然后在调用AJAX函数之后,我想在成功函数中获取元素:

这是我的功能

 function removeImage(id) {  
        var element = $(this).closest('.dropzone');
    swal({   
      title:"Delete",   
      text: "delete",  
      type: "warning",   
      showCancelButton: true,   
      confirmButtonColor: "#DD6B55",   
      confirmButtonText: "Yes !",   
      cancelButtonText: "No, cancel",   
      closeOnConfirm: false,   closeOnCancel: false 
    }, function(isConfirm){
      if (isConfirm) {
        $.ajax({
          type: "POST", 
          data: {id: id},
          url:'ajax/deleteimage.php',
          success : function(data){ 
            if(data == 'ok'){
                    swal({   
                title:"Delete",   
                text: "delete",  
                type: "success",    
                confirmButtonColor: "#AEDEF4",
                confirmButtonText: "Ok",   
                closeOnConfirm: true,   
              }, function(isConfirm){
                    $.when($('.dropzone').find("#"+id).parent().fadeOut())
                                       .done(function() {
                          $('.dropzone').find("#"+id).parent().remove();
                      });
                      var n_div = $('.dz-image-preview').length-1;
                          if (n_div === 0) {
                             $('.dz-message').css("opacity",'1');
                          }
              });
            }else{
              swal("Error, try again", "", "error");  
            }  
               }
        }); // end ajax call 
      } else {     
        swal("Cancel", "", "error");   
      } 
    }); 

  }

我不能用变量元素改变成功函数中的$('.dropzone')

我在jQuery中遇到了同样的问题。主要的问题是ajax不能直接访问这个上下文。因此,我们需要将这个上下文传递给ajax。首先,我们将上下文存储在一个变量中,然后将该上下文赋值到ajax中。

$(".delete_category").click(function () {
    var call_url = $(this).val();
    var this_context = $(this);
    swal({
        title: "Are you sure?",
        text: "Your may not be able to recover!",
        type: "warning",
        showCancelButton: true,
        confirmButtonClass: "btn-danger",
        confirmButtonText: "Yes, delete it!",
        closeOnConfirm: false
    },
        function () {
            $.ajax({
                context: this_context,
                method: "POST",
                url: call_url,
                success: function (response) {
                    if (response == "success") {
                        swal("Deleted!", "Record deleted successfully.", "success");
                        $(this).closest('.delete_row').hide();
                    } else {
                        swal("Error!", response, "error");
                    }
                }
            });
        }
    );
});