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

165
Visualizações
Cómo agregar duración para cada elemento de la matriz en Jquery

Tengo que usar este código js para agregar una matriz tomando valores de los botones en los que se ha hecho clic. Entonces, los almacené en una matriz para pasarlos a la función que se agregará a mi HTML principal. El problema al que me enfrento es que se agrega a la matriz con cada botón en el que hice clic, pero no dará tiempo para que se ejecute cada elemento. Muestra directamente el efecto del último elemento.

 // We create a Promise and return it new Promise((resolve, reject) => { const animationName = `${animation}`; const node = document.querySelector(element); node.classList.add(`${prefix}animated`, animationName); // When the animation ends, we clean the classes and resolve the Promise function handleAnimationEnd(event) { event.stopPropagation(); node.classList.remove(`${prefix}animated`, animationName); resolve("Animation ended"); } node.addEventListener("animationend", handleAnimationEnd, { once: true }); }); var arrayOfButtonId = []; var counter = 1; $(".buttons-container").click(function (e) { var clickedItemId = e.target.id; // var clickedItemValue = e.target.value; arrayOfButtonId.push(clickedItemId); arrayOfButtonId.forEach((index) => { console.log(index); animateCSS(".sample-display", index).then(() => { alert(" animation created successfully!"); }); }); });

Este es el código que traté de implementar.

about 4 years ago · Santiago Gelvez
1 Respostas
Responde à pergunta

0

Pregunta súper clásica, no puede esperar que un mecanismo asíncrono como Promise (incluso con await , y mucho menos con .then() ) funcione dentro de un método Array sincrónico (forEach, map, filter, etc.) como se explica aquí .

Necesitas for y async/await :

 $(".buttons-container").click( async function (e) { var clickedItemId = e.target.id; arrayOfButtonId.push(clickedItemId); for( let index in arrayOfButtonId){ console.log(index); await animateCSS(".sample-display", index); console.log("animation created successfully!"); } });

Además, suelte la alert() porque está bloqueando su interfaz de usuario y anula el propósito del asincronismo. Utilice console.log en su lugar.

about 4 years ago · Santiago Gelvez 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