[英]tr didn't remove in ajax request.
我试图使用最接近的函数从表中删除tr。 此函数在$ .post请求中正常工作,但是在post请求中使用相同的脚本时,该函数不起作用。 我的代码是
$(".delete_cat").click(function() {
var idd = $(this).val();
$.post("<?php echo base_url() ?>category/delete",
{id:idd},
function(data) {
if (data === 1) {
var tr = $(this).closest('tr').remove();
tr.css("background-color","#FF3700");
tr.fadeOut(400, function(){
tr.remove();
});
}
}
)
})
这是因为在ajax调用中丢失了element的上下文。 您可以使用ajax的context选项设置单击的.delete-cart
元素的上下文:
$.post("<?php echo base_url() ?>category/delete",
{id:idd},
context:this,
function(data) {
if (data === 1) {
var tr = $(this).closest('tr').remove();
tr.css("background-color","#FF3700");
tr.fadeOut(400, function(){
tr.remove();
}
});
this
在post
success
功能中具有不同的实例
$(".delete_cat").click(function() { var that = this var idd = $(that).val(); $.post("<?php echo base_url() ?>category/delete", { id: idd }, function(data) { if (data === 1) { var tr = $(that).closest('tr').remove(); tr.css("background-color", "#FF3700"); tr.fadeOut(400, function() { tr.remove(); }); } } ) })
$(this)
内部函数不引用.delete_cat
,而是使用window来缓存它们:
$(".delete_cat").click(function() {
var $this = $(this); // <----here
var idd = $this.val();
$.post("<?php echo base_url() ?>category/delete",
{id:idd},
function(data) {
if (data === 1) {
var tr = $this.closest('tr').remove();
tr.css("background-color","#FF3700");
tr.fadeOut(400, function(){
tr.remove();
});
}
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.