Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

83
Vistas
Valor de atributo de datos jQuery/Javascript indefinido en devolución de llamada

Tengo estas funciones a continuación para la cuenta regresiva.

 $.fn.countdown = function(toTime, callback){ let $el = $(this); var intervalId; intervalId = setInterval(function() { var now = new Date().getTime(); var distance = toTime - now; var days = Math.floor(distance / (1000 * 60 * 60 * 24)); var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); var seconds = Math.floor((distance % (1000 * 60)) / 1000); if(distance < 0){ clearInterval(intervalId); if (typeof callback == 'function'){ callback.call(this); } } else{ var value = days + "<sup>d</sup> " + (hours > 9 ? hours : '0' + hours) + ":" + (minutes > 9 ? minutes : '0' + minutes) + ":" + (seconds > 9 ? seconds : '0' + seconds); $el.html(value); } }, 1000); }; var date1 = new Date(); date1.setSeconds(date1.getSeconds() + 5); var date2 = new Date(); date2.setSeconds(date2.getSeconds() + 7); $('#my_div').countdown(date1.getTime(), () =>{ var id = $(this).attr("id"); console.log(id); $.ajax({ url: "set", type: "POST", data:{ id: id }, dataType: "JSON", success: function (jsonStr){ } }); }); $('#my_div2').countdown(date2.getTime(), () =>{ var id = $(this).attr("id"); console.log(id); $.ajax({ url: "set", type: "POST", data:{ id: id }, dataType: "JSON", success: function (jsonStr){ } }); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div id="my_div" data-id="1"></div> <div id="my_div2" data-id="2"></div>

El conteo está funcionando bien. Ahora necesito obtener data-id después de que finalice la cuenta regresiva. Pero obteniendo valor indefinido. También necesito imprimir el texto Counting Done en cada div my_div y my_div2 . Algo piensa como a continuación:

 $('#my_div').countdown(new Date("Jun 23, 2022 22:37:25").getTime(), function(){ callback: function() { $(this).text("Counting Done"); } });

Mi pregunta es:

  1. ¿Cómo obtener data-id para cada cuenta regresiva div?
  2. ¿Cómo usar la devolución de llamada según mi ejemplo anterior?
about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda