2014-09-03 18 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(); 
    }); 

});