Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

113
Views
¿Eliminar el detector de eventos de la casilla de verificación usando el tipo de entrada?

Así que tengo este detector de eventos simple que actualiza mi precio cuando hago clic en una casilla de verificación.

Sin embargo, no veo cómo puedo refactorizar mi lógica para que reste el precio después de desmarcar una casilla de verificación.

 let items = 0; document.addEventListener("click", (e) => { if (e.target.matches("input[type=checkbox]")) { items += +e.target.value; console.log(items); document.getElementById("price").textContent = `Food Total: $${( items / 100 ).toFixed(2)}`; } });

Hasta ahora, este código agrega todos los valores de mis casillas de verificación, pero si continúo haciendo clic y sin hacer clic en ellas, aún agregan el valor al infinito

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

¿Quizás pueda agregar una clase "marcada" al hacer clic en la casilla de verificación y eliminarla al hacer clic nuevamente? Entonces podría trabajar con la clase en lugar del evento de clic sin formato.

about 4 years ago · Juan Pablo Isaza Report

0

Agregaría las casillas marcadas a un Conjunto y las agregaría/eliminaría del Conjunto al hacer clic. Compruebe si ya están en el conjunto para determinar si necesita sumar o restar de la suma.

 const clickedCheckboxes = new Set(); let sum = 0; const priceDiv = document.getElementById("price"); document.addEventListener("click", ({ target }) => { if (!target.matches("input[type=checkbox]")) { return; } if (clickedCheckboxes.has(target)) { clickedCheckboxes.delete(target); sum -= target.value; } else { clickedCheckboxes.add(target); sum += Number(target.value); } priceDiv.textContent = `Food Total: $${(sum / 100).toFixed(2)}`; });
about 4 years ago · Juan Pablo Isaza Report

0

Creo que las casillas de verificación deberían tener un valor booleano simple de .checked, ya sea verdadero o falso: https://www.w3schools.com/jsref/prop_checkbox_checked.asp

Eso podría permitirle disminuir si .checked === false

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!