2014-03-12 153 views
0

我的问题是相当基本的(至少,对于你们),但我似乎无法得到它的工作。jQuery每个只识别被点击的第一个元素

所以我有产品和添加到购物车按钮。我需要它,所以无论何时添加购物车中的产品,都不会将其添加到新行中,而只需增加计数。

不知何故,它只识别被点击的第一个产品。这里是我的小提琴:

http://jsfiddle.net/78wUa/

var initial = 0; 
jQuery('.add-to-cart').live('click', function() { 
    jQuery('.no-prods').fadeOut(); 
    jQuery('.subtotal').fadeIn(); 

    var dataOwner = jQuery(this).parent().closest('div').attr('data-owner'); 
    var dataClass = jQuery(this).parent().closest('div').attr('data-owner'); 
    dataClass = '.' + dataClass; 

    var count = '<span class="prod-count ' + dataOwner + '">' + 1 + '</span>'; 

    var price = jQuery(this).parent().closest('div').attr('data-price'); 
    price = 'jQuery<span class="prod-price">' + price + '</span>'; 

    if(initial == 0) { 
     var p_name = jQuery('.span9 ' + dataClass + ' h3').clone(); 
     var p_name_and_quantity = jQuery(p_name).after(' ' + count + ' x ' + price); 
     jQuery('.my-cart').append(p_name_and_quantity); 
     initial = 1; 
     //get_subtotal(); 
    } else { 
     get_products(dataClass, count, price); 
    } 
}); 

function get_products(dataClass, count, price) { 
    jQuery('.my-cart h3').each(function() { 
     var c_name = jQuery(this).html(); 
     var product = jQuery('.span9 ' + dataClass + ' h3').html(); 
     if(c_name == product) { 
      //get_count(count, dataClass); 
      return false; 
     } else { 
      var this_p_name = jQuery('.span9 ' + dataClass + ' h3').clone(); 
      var this_p_name_and_quantity = jQuery(this_p_name).after(' ' + count + ' x ' + price); 
      jQuery('.my-cart').append(this_p_name_and_quantity); 
      get_subtotal(); 
     } 
    }); 

    return false; 
} 
+0

你的get_subtotal函数在哪里? – Lian

+0

首先 - 班级必须以字母开头,所以班级“0001”可能不能正常工作 – Asped

+0

Lian,这是当前的一个问题。这就是我评论它的原因。 Asped,好的谢谢。我会改变他们。 – user2772219

回答

1

好吧,我已经更新了你的代码,并在我自己的方式使其: - Fiddle

function get_products(el) { 
    if(products.indexOf($(el).attr('data-product')) == -1){ 
     products.push($(el).attr('data-product')) 
     $('.my-cart').append('<h3 class="product">' +    $(el).parent().find("h3").html() + '</h3>'); 
    } 
    subTotal += +$(el).parent().attr("data-price"); 
    $(".subtotal").html("Subtotal: $" + subTotal); 
} 

希望这是你在找什么。

+0

谢谢!我会尝试这个并回复你。 – user2772219

+0

谢谢你。 – user2772219

相关问题