1
I have a shopping cart created dynamically, but the problem is that when I delete an item it even removes, but if I try to add another item it takes the one that has been removed and adds again in the shopping cart and the item that I added. What is wrong with me? Remembering that this cart only shows the products to the user and removes.
Add code:
// JQUERY ADICIONAR AO CARRINHO DE COMPRAS
$(document).on("click",".btn-adicionar-carrinho",function(e)
{
// esvaziar o carrinho de compras
carrinhovazio = $('.car-vazio').empty();
// id do produto
var idProduto = $('.nomeproduto').attr("id");
// nome do produto
var nomeproduto = $('.header-ingrediente').text();
// valor do produto
var valorproduto = $('.v-lor').text();
// quantidade do produto
var quantidadeproduto = $('.item-qtd-produto').text();
// imagem do produo
var imagemproduto = $('.imagemprodseq').data('id-imagem');
mostraProdutos += "<div class='prodmostra'><div class='imagem-prod' data-id-prod-carrinho=" + idProduto + ">"
mostraProdutos += "<img class='imagem-carrinho' title='" + nomeproduto + "' src='" + urlBase + "imagem/produto/" + imagemproduto + "/jpg' alt='Imagem carrinho de compras CloudDelivery' width='100' height='70' />"
mostraProdutos += "</div><div class='produto'><a href='' style='float: right;' class='excluir-produto-carrinho' title='Retirar produto'>Remover[x]</a><div class='nomeprodutocart'>"+ nomeproduto+ "</div>"
mostraProdutos += "<div class='qtd-texto'>Quantidade: </div><div class='quantidadeprodutocart'>"+ quantidadeproduto + "</div><div id='valorprodutocart' class='valorprodutocart'><span>"+ valorproduto +"</span></div></div></div>";
// mostra os dados do carrinho de compras selecionado
tabelacarrinho.html(mostraProdutos);
somaValores();
});
Delete button code:
// botão para fechar a tela de produtos do carrinho
$(document).on("click",".excluir-produto-carrinho", function(e)
{
e.preventDefault();
var c = "";
if (urlselecionada == valorurl1)
{
$(this).fadeOut('slow', function(c)
{
var quantitem = 1;
var contTotal = "";
var quantcarrinho = $('#quantidadecarrinho').text();
var idStorage = $('#nomeproduto').text();
var listaquantcarrinho = $('#quantidadecarrinho');
contTotal += (quantcarrinho - quantitem);
$(this).closest('.cart-sec').remove();
listaquantcarrinho.html(contTotal);
JSON.stringify(excluirProdutoStorage(idStorage));
});
}
else
{
var prodmostra = $(".prodmostra").length;
//remove o produto conforme o total do carrinho
var precoproduto = $(this).parent().find('.valorprodutocart span').text().replace('R$','');
precoproduto = precoproduto.replace(',','.');
// pega o valor total
var pegatotalcarrinho = $('.total-carrinho').text().replace('R$','');
pegatotalcarrinho = pegatotalcarrinho.replace(',','.');
subtotal = subtrairValorTotal(pegatotalcarrinho, precoproduto);
replacetotal = formataReal(subtotal);
resultadoitem = Money.format(replacetotal);
$(".total-carrinho").html(resultadoitem);
// remove o item no carrinho de compras
$(this).parent().parent().remove();
if (prodmostra == 1)
{
carrinhovazio = $('.car-vazio').text('Carrinho vazio');
}
else
{
carrinhovazio = $('.car-vazio').empty();
}
}
});
it seems that you always concatenate the values present in the cart by var shows Products but does not clean when the item is removed, and when you add another already using +=('displaProducts +='), the previous item already removed comes together.
– Luiz Pillon
It even worked, put after $(this). Parent(). Parent(). remove(); the item shows Products = "", but when adding it deletes what is already in the cart. How can I resover?
– Felipe Michael da Fonseca
Blz. You can use the find on the variable and remove each element, or assign to a var mediator who delivers the correct products at the end. I’ll send you the code in the answer.
– Luiz Pillon
Ok. Problem solved. Thank you very much
– Felipe Michael da Fonseca