Ver Mensaje Individual
  #4 (permalink)  
Antiguo 20/12/2012, 03:01
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 9 meses
Puntos: 574
Respuesta: Usar multiples relojes sin duplicar el codigo...

Si has entendido bien.

Luego tienes que tener esos divs en el html.

La funcion debe recibir dos paramteros:

numClock el numero del div donde vas a mostrar el reloj

valorNumClock la fecha y/u hora que debe tener en cuenta

Por la sintaxis que empleas debes estar usando jquery o una libreria similar. No nos dices o no se ver como se desencadena el evento que ejecuta la funcion. Falta otra modificacion que es la definicion de los parametros...

El esquema en javascript sin librerias seria


Código Javascript:
Ver original
  1. function reloj(numClock,valorNumClock){
  2. ....
  3. }

y en algun evento en el html el llamado a la función con los con los datos

on....="reloj(1,'2012,12,24')" para el reloj 1 y esa fecha.

(No se porque usas comas y no 2012-12-24 ???)

Si los relojes no van ligados a un evento tambien podrias hacer lo siguiente

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. $(function(){
  3. var arrvalorNumClock=new Array();
  4. arrvalorNumClock[0]=<?php echo $clock0 ?>;
  5. arrvalorNumClock[1]=<?php echo $clock1 ?>;
  6. arrvalorNumClock[2]=<?php echo $clock2 ?>;
  7. ....
  8. arrvalorNumClock[14]=<?php echo $clock14 ?>;
  9. for (var numClock=0;numClock<15;numClock++){
  10.  var d, h, m, s;
  11.   $('div#clock'+numClock).countdown(new Date(arrvalorNumClock[numClock]), function(event) {
  12.     var timeFormat = "%d dia(s) %h:%m:%s"
  13.         $this = $(this);
  14.     switch(event.type) {
  15.       case "days":
  16.         d = event.value;
  17.         break;
  18.       case "hours":
  19.         h = event.value;
  20.         break;
  21.       case "minutes":
  22.         m = event.value;
  23.         break;
  24.       case "seconds":
  25.         s = event.value;
  26.         break;
  27.       case "finished":
  28.         $this.fadeTo('slow', 0.5);
  29.         break;
  30.     }
  31.     // Assemble time format
  32.     if(d > 0) {
  33.       timeFormat = timeFormat.replace(/\%d/, d);
  34.       timeFormat = timeFormat.replace(/\(s\)/, Number(d) == 1 ? '' : 's');
  35.     } else {
  36.       timeFormat = timeFormat.replace(/%d dia\(s\)/, '');
  37.     }
  38.     timeFormat = timeFormat.replace(/\%h/, h);
  39.     timeFormat = timeFormat.replace(/\%m/, m);
  40.     timeFormat = timeFormat.replace(/\%s/, s);
  41.     // Display
  42.     $this.html(timeFormat);
  43.  
  44.     //Cierro el bucle for
  45.  
  46.     }
  47.   });
  48. });
  49. </script>

Asi crearias directamente 15 relojes


Quizas estoy improvisando demasiado al no tener claro que libreria usas ni como ejecutas la función pero la idea es esa....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 20/12/2012 a las 03:07