2014-03-12 204 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

相關問題