Привет у меня есть следующая проблема у меня есть два счетчика: одно из совокупных средств (которое инициализируется в 0) и другой полных средств (который инициализируется в 24) идея состоит, в том, чтобы коснувшись click в кнопке agrege средства в тележку и счетчик средств был увеличен на один и полных decremente в одном, и потом удалив средство увеличьтесь полные и decremente тот средств. Проблема появляется, удалив средство функция выполняет количество раз статей, которые добавили пример: Если добавились 3 средства, первый click удаления будет работать однажды, второй click будет работать два раза и третий click будет работать три раза
я оставляю мой код:
let contador = 0;
let totales = 24;
$('#bookcount').append(contador);
$('#bookleft').append(totales);
mybooks = new Array
$('.addtocart').click(function(){
event.preventDefault();
// obtener el padre del link
var padre = $(this).parent().parent();
// obtener su id
var id = padre.attr('id');
var title = padre.data('title');
var idcart = $('#shoppingcart').find($(this).data("plato"))
/* console.log(title) */
if (contador == 24){
$('#shoppingcart').append("Ya alcanzaste el maximo de recetas")
} else{
$('#shoppingcart').append("<div class='row my-3' id='"+ id +"' data-id='"+id+"'><div class='col-6 my-auto p-0'><p>Receta</p><p>"+title+"</p></div><div class='col-1 p-0'><a class='removecart' class=' "+id+" ' href=''><img src='img/crops/trash.png' alt=''></a></div><div class='col-5 p-0'><img src='img/receta.jpg' alt='test' class='img-fluid'></div></div>");
$('#bookcount').empty();
$('#bookcount').append(contador = contador + 1);
$('#bookleft').empty();
$('#bookleft').append(totales = totales - 1);
mybooks.push(id);
console.log(mybooks)
console.log(contador);
}
$('.removecart').click(function(){
event.preventDefault();
contador = contador - 1;
totales = totales + 1;
$('#bookcount').empty();
$('#bookcount').append(contador);
$('#bookleft').empty();
$('#bookleft').append(totales);
console.log("contador despues",contador);
console.log("totales despues", totales);
idthis = $(this).parent().parent().attr("data-id")
// console.log(idthis)
var pos = mybooks.indexOf(idthis);
// console.log(pos)
if ( pos !== -1 ) {
var remove = mybooks.splice(pos,1);
}
console.log(mybooks);
$(this).parent().parent().remove();
})
});
Проблема состоит в том, что ты помещаешь событие внутри другого.
Для того, чтобы он оказался более ясным, я буду опустошать события:
$('.addtocart').click(function(){
//Code
$('.removecart').click(function(){
//Code
});
});
, поскольку каждый раз, когда ты кликаешь в кнопке "aГ±adir" то, что действительно происходит, что он эти aГ±adiendo новое событие в элементы .removecart
и потом кликнув в этом botГіn выполняют все события.
, Чтобы это упорядочивать, отделяет события:
$('.addtocart').click(function(){
//Code
});
$('.removecart').click(function(){
//Code
});
Уполномочивая события:
//Si ".addtocart" aun no existe
$(document).on("click", ".addtocart", function(e){
//Code
});
//Si ".removecart" aun no existe
$(document).on("click", ".removecart", function(e){
//Code
});
В этом другом вопросе объясняет себе использование тем, что уполномочивает события с .on ():
не выполняет событие после того, как - элементы dinГЎmicos, ВїComo уполномочивать события?