Acabo de empezar a aprender javascript. Tengo un proyecto escolar simple. Tengo 3 artículos con botones - y + con total para cada uno y luego total final para los 3. No puedo hacer que el botón total no vaya por debajo de 0. Va a valores negativos. Los otros 3 no bajan de 0 en su cuenta total individual.
//set default values let gb = 0 // Gingerbread let cc = 0 // Chocolate Chip let ss = 0 // Sugar Sprinkle let total = 0 //set variables for quantity var totalQuantity = document.getElementById('qty-total'); var gbQuantity = document.getElementById('qty-gb'); var ccQuantity = document.getElementById('qty-cc'); var ssQuantity = document.getElementById('qty-sugar'); //set event listener for Gingerbread cookie + button document.getElementById("add-gb").addEventListener("click", function(e) { { gb++ } gbQuantity.textContent = gb; total = total + 1; totalQuantity.textContent = total; console.log("Gingerbread + was clicked!") }) // set even listener for Gingerbread cookie - button document.getElementById("minus-gb").addEventListener("click", function(e) { if(gb > 0) { gb-- } gbQuantity.textContent = gb; total = total - 1; totalQuantity.textContent = total; console.log("Gingerbread - was clicked!") }) //set event listener for Chocolate chip cookie + button document.getElementById("add-cc").addEventListener("click", function(e) { { cc++ } ccQuantity.textContent = cc; total = total + 1; totalQuantity.textContent = total; console.log("Chocolate Chip + was clicked!") }) //set event listener for Chocolate chip cookie - button document.getElementById("minus-cc").addEventListener("click", function(e) { if(cc > 0) { cc-- } ccQuantity.textContent = cc; total = total - 1; totalQuantity.textContent = total; console.log("Chocolate Chip - was clicked!") }) //set event listener for Sugar Sprinkle cookies + button document.getElementById("add-sugar").addEventListener("click", function(e) { { ss++ } ssQuantity.textContent = ss; totalQuantity = document.getElementById("qty-total"); total = total + 1; totalQuantity.textContent = total; console.log("Sugar Sprinkle + was clicked!") }) //set event listener for Sugar Sprinkle cookies - button document.getElementById("minus-sugar").addEventListener("click", function(e) { if ( ss > 0) { ss-- } ssQuantity.textContent = ss; total = total - 1; totalQuantity.textContent = total; console.log("Sugar Sprinkle - was clicked!") })Entonces, la cantidad total sigue cayendo por debajo de 0 después de que todavía se hace clic en los botones menos. Gracias por cualquier ayuda.
Sin ver todo su código, una forma de lograr esto sería envolver una condición alrededor de todas las partes de su código total = total - 1; cual decremento total....
if(total >= 1){ total = total - 1; }Entonces, ahora, el total solo disminuirá si actualmente es un valor mayor o igual a 1.
Creo que necesita inicializar la variable total con esto al comienzo del código. Esto asegurará que el total comience con la suma correcta.
total = totalQuantity.textContent
Y debe asegurarse de que la qty-total en la interfaz de usuario se establezca en qty-gb + qty-cc + qty-sugar
Alternativamente, también podría hacer esto al principio:
total = gbQuantity + ccQuantity + ssQuantity
Hay al menos dos soluciones simples a considerar:
cc-- , gc-- y ss-- , sino también asegúrese de que la lógica que resta del total (es decir, estas líneas - total = total - 1 ) también están dentro de la misma condición if. De lo contrario, actualmente está restando del total, sin importar si restó del gc , ss o ccO
total = total + 1 o total = total - 1 , siempre puedes decir que total = gc + cc + ss , por ejemplo. :)