Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

150
Visualizações
Ejecutar la función solo una vez para un elemento en particular

Estoy creando una aplicación de tareas sencillas y soy nuevo en JavaScript y estoy atascado en un problema.

Estoy tratando de ejecutar la función solo una vez para un ID de elemento en particular. me gusta,

Hay 5 divs con IDs 1,2,3,4,5 . entonces estoy accediendo a ellos por className y luego su ID.

Luego estoy almacenando su identificación en una variable y almacenándola para evitar que la función se ejecute con la identificación anterior.

página.html

 function myFunction() { // Used for getting last element of all the classes var element = Array.from(document.querySelectorAll(".fields")).pop(); var previousId = element.id; var executed = false if (previousId === element.id) { if (!executed) { executed = true; console.log("Run only once"); console.log(previousId); } } }
 <input type="text" id="1" oninput="myFunction(id)" class="fields"> <input type="text" id="2" class="fields">

¿Qué estoy tratando de hacer?

Estoy tratando de ejecutar la función solo una vez para el campo de entrada actual que el usuario está escribiendo.

Intenté eliminar if (previousId === element.id) { y ejecutar solo if(!executed){ pero tampoco funcionó.

Pero cada vez que escribo en el campo de entrada, se ejecuta cada vez que presiono la tecla.

Lo he intentado muchas veces pero sigue sin funcionar. Cualquier ayuda sería muy apreciada. Gracias de antemano.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Puede guardar una matriz de identificación ya ejecutada y verificarla

 let alreadyRunned = [] function myFunction(id) { if (alreadyRunned.includes(id)) { return; } alreadyRunned = [...alreadyRunned, id] console.log("Run only once"); console.log(id); }
 <input type="text" id="1" oninput="myFunction(1)" class="fields"> <input type="text" id="2" class="fields" oninput="myFunction(2)">

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda