我想创建一个新功能,当我按下一个小垃圾桶图标时,MYSQL中的记录将被删除。
以下是我的js代码:
$("table").find("img[class='icon_garbage']").click(function(){
var delnum = $(this).parents("tr").find("td[class='so']").text();
var string='delete_num='+delnum;
$.ajax({
url:"../src/delete.php",
type:"post",
data:string,
success: function(){
var tr = $(this).parents("tr");
tr.fadeOut('slow', function(){
$(this).remove();
});
}
})
});
它没有用。
记录会删除,但记录不会淡出。
但如果我按如下方式修改代码:
$("table").find("img[class='icon_garbage']").click(function(){
var delnum = $(this).parents("tr").find("td[class='so']").text();
var string='delete_num='+delnum;
var tr = $(this).parents("tr");
tr.fadeOut('slow', function(){
$(this).remove();
});
$.ajax({
url:"../src/delete.php",
type:"post",
data:string,
success: function(){
// var tr = $(this).parents("tr");
// tr.fadeOut('slow', function(){
// $(this).remove();
// });
}
})
});
它会起作用......
我不知道为什么,有人可以告诉我吗?
我的操作系统是MAC OSX 10.8.5,我使用MacVim作为我的编辑器。
答案 0 :(得分:0)
将ajax调用中的上下文设置为this
。如果不设置上下文,this
不会在成功事件中引用您的元素。
$.ajax({
url:"../src/delete.php",
type:"post",
data:string,
context: this, // <----------------- here
success: function(){
var tr = $(this).parents("tr");
tr.fadeOut('slow', function(){
$(this).remove();
});
}
});