Ajax beforesend,successces,complete,loading icon

时间:2018-06-03 16:17:16

标签: javascript jquery ajax magento-1.9

所以这是我的“addtocart”功能。

$(document).on("addtocart", function(e, object) {
  e.preventDefault();
  var $object = $(object);
  var target = $(object).attr("action");
  var quantity = $(object).find(".qty").val();
  var productID = $(object).data("productid");
  $.ajax({
    url: target,
    data: {
      qty: quantity
    },
    dataType: 'json',
    beforeSend: function() {
      if ($object.find(".loading").length < 1) {
        $object.append('<div class="loading"><span class="fa fa-refresh fa-spin fa-3x fa-fw"></span></div>');
      } else {
        $("#item_" + productID).removeClass("added");
      }
      $("#item_" + productID).addClass("adding");
    },
    success: function(data) {
      if (data.r === "success") {
        var blocks = data.update_blocks;
        $.each(blocks, function(key, item) {
          var block = blocks[key];
          $(block.key).html(block.value.trim());
        });
        $("#jm-mycart").trigger("show");
        $("#item_" + productID).removeClass("adding").addClass("added");
        if ($("#item_" + productID + " td:first-child").find(".added").length < 1) $("#item_" + productID + " td:first-child").append('<div class="added"><span class="fa fa-check"></span></div>');
      } else {
        alert("Noget gik galt");
      }
    },
    complete: function() {
      $object.find(".loading").remove();
    }
  });
  return false;
})

我的问题是,无论何时我第一次添加项目,都会出现加载。但之后没有。关于这个有两件事情。

首先,它在产品页面上运行得很好,只在类别页面上才会发生这种情况。

其次,当我没有尝试在完成时删除加载时,它在类别页面上工作正常,但当然会卡在产品页面上。

我真的无法解决这个问题。任何帮助非常感谢。

0 个答案:

没有答案