2014-09-03 20 views
0

在完成ajax调用后使用jquery,我怎么能说remove()这个元素你刚才点击了?使用下面的代码不起作用:阿贾克斯的完成ajax调用后选择“this”元素

$(".deletegid").click(function() { 
    var imageid = $(this).attr('name'); 
    $.ajax({ 
     type: "POST", 
     url: "/public/index.php/admin/content/athletes/deleteimagefromgallery", 
     data: { 
      imageid: imageid, 
      galleryid: $("input[name=athletes_gid]").val(), 
      ci_csrf_token: $("input[name=ci_csrf_token]").val() 
     } 
    }) 
    .done(function() { 
     $(this).remove();   
    }); 
}); 

回答

4

使用上下文选项设置上下文当前元素:

$.ajax({ 
    type: "POST", 
    context:this, 
    url: "/public/index.php/admin/content/athletes/deleteimagefromgallery", 
    data: { imageid: imageid ,galleryid: $("input[name=athletes_gid]").val(), ci_csrf_token: $("input[name=ci_csrf_token]").val() } 
}) 
.done(function() { 
    $(this).remove();   
}); 
1

保持它在一个变量

$(".deletegid").click(function() { 
    var obj = $(this); 
    var imageid = $(this).attr('name'); 
    $.ajax({ 
      type: "POST", 
      url: "/public/index.php/admin/content/athletes/deleteimagefromgallery", 
      data: { 
       imageid: imageid, 
       galleryid: $("input[name=athletes_gid]").val(), 
       ci_csrf_token: $("input[name=ci_csrf_token]").val() 
      } 
     }) 
     .done(function() { 
      obj.remove(); 
     }); 
}); 

this指ajax对象在done事件中。

0

用作

$(".deletegid").click(function() { 
var objectControl = $(this); 
var imageid = objectControl.attr('name'); 
$.ajax({ 
     type: "POST", 
     url: "/public/index.php/admin/content/athletes/deleteimagefromgallery", 
     data: { 
      imageid: imageid, 
      galleryid: $("input[name=athletes_gid]").val(), 
      ci_csrf_token: $("input[name=ci_csrf_token]").val() 
     } 
    }) 
    .done(function() { 
     objectControl.remove(); 
    }); 

});