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

168
Views
Aumentar y disminuir el número mientras se presiona

Tengo dos tramos en los que se puede hacer clic que pueden aumentar y disminuir el número dentro de una entrada al guardar la operación dentro de ellos usando una identificación, luego hacer un bucle en ellos y hacer la operación usando eval() , quiero aumentar el número y disminuirlo mientras presiono no solo en clic (pulsación larga)

 <span id="--">-</span> <input class="num" type="number" max="50" value="0" min="1" disabled /> <span id="++">+</span>
 let num = document.querySelector(".num"); let controllers = document.querySelectorAll(".control span"); controllers.forEach((c) => { c.onclick = function (e) { let op = e.target.id; eval("num.value" + op); }; });
about 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Debe usar el evento mousedown en lugar de click , y establecer un intervalo que cumpla con su lógica en algún momento.

Además, no estoy seguro de por qué está usando la propiedad id y no alguna propiedad data tal vez, este no es un uso seguro de esta propiedad. También debe usar detectores de eventos en lugar de agregar directamente la función en la propiedad.

 <span data-op="--">-</span> <input class="num" type="number" max="50" value="0" min="1" disabled /> <span data-op="++">+</span>
 let num = document.querySelector(".num"); let controllers = document.querySelectorAll(".control span"); controllers.forEach((c) => { let interval c.addEventListener('mousedown',function (e) { // mouse down - start ticking let op = e.target.getAttribute('data-op'); // get data property interval = setInterval(() => { eval("num.value" + op); }, 100) // set interval tick time here }); c.addEventListener('mouseup',function (e) { // mouse up - stop ticking clearInterval(interval) }); });
about 4 years ago · Santiago Trujillo Report

0

¿Estás tratando de lograr algo como esto?

 let score = 0; let status = false; const scoreEl = document.querySelector('#score'); const btnEl = document.querySelector('#btn'); let interval = null; btnEl.addEventListener('mousedown', e => { status = true; update(); }); btnEl.addEventListener('mouseup', e => { status = false; update(); }); const update = () => { if (status) { interval = setInterval(() => { score++; scoreEl.innerHTML = score; }, 100); } else { if (interval) clearInterval(interval); } }
 <div id="score">0</div> <button id="btn">Increment</button>
about 4 years ago · Santiago Trujillo 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!