我试图使用最近的函数从表中删除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();
});
}
}
)
})
答案 0 :(得分:0)
这是因为在ajax调用中元素的上下文丢失了。您可以使用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();
}
});
<强> Context option in ajax 强>
答案 1 :(得分:0)
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();
});
}
}
)
})
&#13;
答案 2 :(得分:0)
$(this)
不是指.delete_cat
,而是指向窗口,缓存那些:
$(".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();
});
}
});
});