jQuery每个只识别被点击的第一个元素

时间:2014-03-12 10:02:14

标签: jquery html

我的问题非常基本(至少对你们来说),但我似乎无法让它发挥作用。

所以我有产品和添加到购物车按钮。我需要它,以便每当我在购物车中添加产品时,它都不会将其添加到新行中,而只是增加计数。

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

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;
}

1 个答案:

答案 0 :(得分: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);
}

希望这就是你要找的东西。