JQ中$(this)的指向问题与异步处理时删除顺序问题

在写用户订单删除的时候遇到几个问题,一个是$(this)无法指向当前元素造成无法在DOM中移除元素

另一个是指向当前元素后竟然也无法按我的期望的移除元素,在思考过后修改了以下代码便得到了解决!

第一点,将$(this)赋值给一个变量This,然后在后面的调用中都用This来完成

第二点,删除元素的时候要从最外层开始删,也就是删除父级->再删除自己,如果先删除自己,就无法找到父级元素

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
$('.orderCancel').on('click',function(){
    var oid = $(this).attr('oid');
    This = $(this);
    layer.open({
        title: '订单取消申请 ',
        btn:['确认申请','暂不想取消']
        ,content: '<span class="cancelTxt">取消原因 : </span>不想买了配送信息有误重复下单/误下单其他原因<span class="cancelTips">温馨提示 :</span> <span class="cancelTips">· 因存在组合促销关系,订单里的相关商品将一并取消</span> <span class="cancelTips"> · 该订单已付金额将返还至您的银行卡/乐创账户</span>',
        // yes回调,参数一:当前层索引,参数二:当前层的DOM对象
        yes:function(index, layero){
            // 使用户不可连击
            var ii = layer.load();
            setTimeout(function(){
                layer.close(ii);
            }, 1000);
            // 手动关闭当前层
            layer.close(index);
            // 调用ajax修改信息
            var cancel = $('.cancelSlt').children('option:selected').val();
            $.post(cancelOrder,{cancel:cancel,oid:oid},function(res){
                if(res == 1){
                    layer.msg('成功取消订单');
                    var str = '<a class="buyNow" href="" data-ke-src=""><b></b>立即购买</a> <a href="" data-ke-src="">查看取消详情</a>';
                    var str2 = '<div class="orderStatus status5">已取消</div><a class="orderDetails" href="" data-ke-src="">订单详情</a>';
                    var recycle = '<a class="recycleOrder"><i class="iconfont"></i></a>';
                    This.parents('.rgTd').prev().find('.rgStatus').html(str2);
                    This.parents('.trGoods').prev().find('.oshop').append(recycle);
                    This.parent().html(str);
                }else{
                    layer.msg('系统晕菜啦!请稍后再试');
                }
            },'json')
        }
    });
})


发布评论
还没有评论,快来抢沙发吧!