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' ) } }); }) |
发布评论
还没有评论,快来抢沙发吧!