添加到购物车单击后删除不起作用,但刷新页面后工作正常

时间:2014-01-15 07:27:55

标签: jquery

我有一个购物车页面,如果我点击添加到购物车然后删除制作页面刷新,如果添加到购物车后我重新加载页面删除适用于页面刷新。我认为jquery处理程序有任何问题,但我已经尝试了所有代替“文档就绪”的窗口加载等等。

这是我的代码脚本

$(document).ready(function(){
  $('a.delete').on("click", function(e) {
    e.preventDefault();
    var parent = $(this).parent();
    $.ajax({
      type: 'get',
      url: 'index.php',
      data: 'ajax=1&delete=' + parent.attr('id').replace('record-',''),
      beforeSend: function() {
        parent.animate({'backgroundColor':'#fb6c6c'},300);
      },
      success: function() {
        parent.slideUp(300,function() {
          parent.remove();
        });
      }
    });
  });

  $(".AddToCart").on('click',function() {
    var productId = this.id;
    var check_realtor = $(this).next('input').next('input').next('input').next('select.realtor').val();
    $('#labee_'+productId).val(check_realtor);
    var FormData = $('#productAddCart_'+productId).serialize();
    $.ajax({  
      type: "POST",  
      url: "functions.php?action=addToBasket",  
      data:FormData, 
      beforeSend:function(){$("#submit_indicator").show();},
      success: function(cartproduct) {
        //location.reload();
        $("#submit_indicator").hide();
        $(".shoping_cart").html(cartproduct);
      } 
    });
  })
});

这是删除<a href="?delete=',$cartdata->id,'" onclick="return:false" class="delete">Delete</a>

的html标记

以下是添加到购物车按钮<button id="<?php echo $proDuctName->id;?>" type="button" class="btn btn-danger AddToCart"> <span class="glyphicon glyphicon-shopping-cart"></span> Add to Cart</button>

的标记

1 个答案:

答案 0 :(得分:0)

要阻止页面提交,请e.preventDefault(),但您还希望在该功能的末尾添加return false;。试试这个

$('a.delete').on("click", function(e) {
  e.preventDefault();
  var parent = $(this).parent();
  $.ajax({
    type: 'get',
      url: 'index.php',
      data: 'ajax=1&delete=' + parent.attr('id').replace('record-',''),
      beforeSend: function() {
      parent.animate({'backgroundColor':'#fb6c6c'},300);
    },
    success: function() {
      parent.slideUp(300,function() {
        parent.remove();
      });
    }
  });
  return false; //<<<< Add this line here
});

但您也不希望链接提交到新页面。您告诉它要提交给"?delete=',$cartdata->id,'"。因此,将此更改为空白并添加onclick="return:false",如下所示:

<a href="" onclick="return:false" class="delete">Delete</a>