【发布时间】:2019-06-15 15:48:42
【问题描述】:
我在将商品放入购物车时遇到问题,在我将商品添加到购物车后,Ajax 运行良好,然后当我尝试从列表中删除它时,如果我重新加载页面,它第一次无法使用 Ajax它会起作用的。
Ajax 生成这样的响应:
1x ItemTitle X(移除)
当 remove 有 /delete-from-cart/id/place_id 时
它只在我重新加载页面时有效,而且我还有一个优惠券按钮,它也可以与 Ajax 一起使用,但它只在刷新后有效。
$('.deletefromcart a').each(function(){
$('#'+this.id).on('click',function(e) {
e.preventDefault();
var id = $(this).attr('data-del');
var url = $(this).attr('href');
var place = $(this).attr('data-place');
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
url: '/delete-from-cart/'+id+'/'+place+'',
method: 'get',
data: $(this).serialize(),
success: function(data){
toastr.warning('Uspešno ste obrisali iz korpe!', 'Korpa');
$(".korpa").load(location.href + " #cartAll");
},
error: function(data){
console.log(data);
}
});
});
});
似乎这个函数在我添加到购物车后找不到任何从 ajax 运行它的对象,刷新后它找到了。
如果您需要实时预览,我可以为您注册一个帐户。
【问题讨论】:
-
$('#' + this.id)指的是什么? -
这是元素:
<a href="http://klopa.naprviklik.com/delete-from-cart/0/2" class="btn btn-danger btn-round" data-place="2" data-del="0" id="delete-0" role="button">x</a> -
$(this)将引用元素本身 -
不需要每个,因为它会一次触发一个,所以如果你编写没有每个的点击函数并尝试它可能会工作
-
方法不应该是
post吗?