Jquery - POST,成功回调没有被执行

时间:2015-12-29 11:28:52

标签: jquery ajax shopify

我使用下面的Jquery代码将项目添加到购物车。我的目的是改变"添加到购物车"按钮一旦Ajax调用成功。然而它没有发生。代码如下 -

  jQuery.post('/cart/add.js', {
              quantity: 1,
              id: variant_id
  }, function(data){
    var myelem = document.getElementById('red') ;
    if (myelem != null){
      document.getElementById('red').id = 'normal';
    }
    $("span").removeClass("hidden-count");
    $(".cart-count").text('1');
    $("#AddToCartText").text("Added");
    $("#AddToCart").css("color","Green");

  });

目前,代码正在将项目添加到购物车,但我没有看到预期的元素操作。 操作元素的jquery是正确的,因为当我从成功回调中删除它,并在AJAX调用之后放置它(没有任何依赖于AJAX调用),在这种情况下元素被操纵。

  1. 我已提到http://api.jquery.com/jquery.post/来验证语法。
  2. 我检查过" Console"在开发人员工具(Chrome)中,没有错误消息。
  3. 请告诉我,我犯了错误。

3 个答案:

答案 0 :(得分:3)

这适用于我的购物车。注意第4个参数。 id是变体id:

jQuery.post('/cart/add.js', {id:6028354753}, function(data){
  console.log(data);
},'json');

答案 1 :(得分:0)

您是否尝试在回调函数中添加一些console.log?也许代码正在执行,但没有按照预期执行。

也检查variant_id的值。

答案 2 :(得分:0)

如果成功,您必须将.done回调添加到您的函数中,您不喜欢下面的示例。这就是为什么你没有得到理想的DOM操作。

 $.post( "test.php", { name: "John", time: "2pm" })
  .done(function( data ) {
  alert( "Data Loaded: " + data );
 });