我的网站上有一个仪表板,其中包含表格中的一些条目,表格中的每个条目都有一个delete
按钮。当用户单击delete
按钮时,会发生Ajax调用,我将在回调函数中删除该条目。我的代码:
$(".del").live({
click: function () {
$.post("/Home/DeleteTemplate", {
name: $(this).parent().siblings("td:first").children("a").html()
}, function (data) {
$(this).parents("tr").remove(); //Inside the callback
});
}
});
现在我的问题是,如果我删除回调函数中的行,则不会立即从条目中删除该行。我必须再次关闭并打开仪表板才能看到结果。
但是如果我删除了回调函数之外的条目,那么它会同时删除:
$(".del").live({
click: function () {
$.post("/Home/DeleteTemplate", {
name: $(this).parent().siblings("td:first").children("a").html()
});
$(this).parents("tr").remove(); //Outside the callback
}
});
这里有什么问题?
答案 0 :(得分:4)
this
不会在回调中引用您的选择器,请执行以下操作:
$(".del").live({ click: function () {
var that = $(this); // added this
$.post("/Home/DeleteTemplate",
{ name: that.parent().siblings("td:first").children("a").html() },
function (data) {
that.parents("tr").remove(); // used "that" here
});
}
});