繁体   English   中英

tr没有在ajax请求中删除。

[英]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();
     }
   });

Ajax中的上下文选项

thispost 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM