2011-06-27 28 views
9

Estoy construyendo un sitio de subastas de centavos y llegué a la parte con temporizadores (estoy usando el framework de Symfony). Aquí tengo algunas preguntas y problemas.Temporizadores de cuenta atrás en jQuery

Tengo alrededor de 10 productos en la página de inicio que necesito mostrar. Todos ellos con un temporizador de cuenta regresiva.

Para que los contadores funcione correctamente que tenía esto en mente:

  1. En la acción de la plantilla, voy a buscar todos los productos necesarios para ser visualizados en una matriz junto con hora_inicial y hora_final. en el html, cada producto tendrá un div oculto que contendrá segundos para terminar (end_time - start_time).

  2. el documento listo, jQuery iterar a través de todos los productos en la página principal, convertir el tiempo restante a formato adecuado (hours:minutes:seconds) , salida esa vez. Entonces esta es la parte donde estoy confundido - ¿esta función ahora llama a otra función, que disminuye el tiempo del div, y tiene un setTimeout en 1 segundo?

  3. en div.click, jQuery obtiene el div de segundos del producto, aumenta su contenido en 10. si se desborda, también cambia los minutos y los segundos en el valor correcto. etc.

Una de mis preocupaciones es cómo jQuery sabrá cuántos productos hay en la página web? Actualmente estoy usando <body onload="func()"> para activar los temporizadores. Soy nuevo en JavaScript/jQuery, entonces mi pregunta es ¿cuál es otra, mejor manera de activar los temporizadores, y también enviar el número de productos de argumento a la función jQuery?

Además, ¿será esto lo suficientemente rápido y efectivo? ¿Se puede hacer mejor?

+1

puedes poner tus productos dentro de algunos divs con un 'nombre de clase' y luego usar la función' foreach ('. classname') 'de jQuery para iterar sobre los productos – anu

Respuesta

1

como se ha mencionado en mi comentario que puede poner sus productos en el interior de algunos divs con un classname y luego usar la función de jQuery $.each('.classname') para iterar sobre los productos

Ahora en cuanto a su segundo punto, puede llamar a una función separada para cada uno producto div con el tiempo de inicio y fin como parámetros. here is a script para ver un temporizador de cuenta regresiva.

Para su tercera pregunta, puede crear un campo oculto para guardar el timesatmp actual para cada producto y onclick de cada producto puede llamar a la función de cuenta atrás con lo nuevo valor de arranque modificado

Puede utilizar $(".classname").size() para obtener el número total de productos

Cuestiones relacionadas