Javascript函数没有正确执行

时间:2015-12-23 12:06:32

标签: javascript jquery shopify

我正在调用.getJSON来在shopify中执行一些AJAX脚本。回调函数有多个语句,但只有第一行被执行。在我调试的下面的代码中,控件转到行

jQuery.getJSON('/cart.js', function(cart){

之后显示警告框,其中包含来自购物车的正确计数。但是,警报消息下面的代码没有被执行。我哪里出错了。

function addtocart(prod_handle, variant_id) {
  var found = false;
  var x = 0;
  jQuery.getJSON('/cart.js', function(cart) {
    alert(cart.item_count);
    x = cart.item_count;
    if (x > 0) {
      jQuery.getJSON('/product/' + prod_handle + '.js', function(product) {
        var selected_prod_tags = products.tags;
        for (var index = 0; index < selected_prod_tags.length; index++) {
          if (selected_prod_tags[index] == 'jamshedpur' || selected_prod_tags[index] == 'ranchi') {
            var city = selected_prod_tags[index];
          }
        }
        jQuery.getJSON('/product/' + cart.items[0].handle + '.js', function(product) {
          var cart_prod_tags = products.tags;

          for (index = 0; index < cart_prod_tags.length; index++) {
            if (cart_prod_tags[index] == city) {
              found = true;
              jQuery.post('/cart/add.js', {
                quantity: 1,
                id: variant_id
              });
            }
          }
          if (found == false) {
            alert("Error!! Please select products from same city");
          }
        });
      });
    } else {
      jQuery.post('/cart/add.js', {
        quantity: 1,
        id: variant_id
      });
    }

  });

}

1 个答案:

答案 0 :(得分:0)

在您运行的下两个请求中,产品未定义。这只是一个错字吗?

请记住,getJSON要求它是有效的JSON,否则它将无声地失败,具体取决于您拥有的jQuery版本。

jQuery.getJSON('/product/' + prod_handle + '.js', function(product) { var selected_prod_tags = products.tags;

您可能还想查看将某些代码抽象为单独的函数,例如add.js调用。