Ver Mensaje Individual
  #4 (permalink)  
Antiguo 03/02/2016, 08:45
ZedGe1505
 
Fecha de Ingreso: junio-2011
Mensajes: 289
Antigüedad: 12 años, 10 meses
Puntos: 15
Respuesta: Pocisionar elementos en un planning

Te dejo un código que hice a la rápida en el trabajo...


Debes adaptarlo a que te muestre en la primera fila las fechas y que la función reciba como parametro tus tareas.


Código Javascript:
Ver original
  1. function genera_tabla() {
  2.   // Obtener la referencia del elemento body donde insertaras tu tabla
  3.   var body = document.getElementsByTagName("body")[0];
  4.  
  5.   // Crea un elemento <table> y un elemento <tbody>
  6.   var tabla   = document.createElement("table");
  7.   var tblBody = document.createElement("tbody");
  8.  
  9.   //Variables de la duración de la tarea
  10.   //Comienza en mi fecha 5 de las 15 que muestro
  11.     var idFechaInicial=5;
  12.   //Durará 15 días
  13.   var duracion=5;
  14.   var aux = duracion;
  15.  
  16.  
  17.   // Crea las celdas
  18.   for (var i = 0; i < 2; i++) {
  19.     // Crea las hileras de la tabla
  20.     var hilera = document.createElement("tr");
  21.     for (var j = 0; j < 15; j++) {
  22.       // Crea un elemento <td> y un nodo de texto, haz que el nodo de
  23.       // texto sea el contenido de <td>, ubica el elemento <td> al final
  24.       // de la hilera de la tabla
  25.  
  26.             //Si la fecha esta entre la fecha 5 y los próximos 5 días y no es la primera fila
  27.       if((j+1)>=idFechaInicial && aux>0 && i>0){
  28.         var celda = document.createElement("td");
  29.         //Inicio de la tarea
  30.         if((j+1)==idFechaInicial)
  31.             celda.style.backgroundColor = "yellow";
  32.         //Días intermedios
  33.         else if(aux==1)
  34.             celda.style.backgroundColor = "blue";
  35.         //Final de la tarea
  36.         else
  37.             celda.style.backgroundColor = "red";
  38.          
  39.         //Llamas una funcion cuando hace click en algun dia de la tarea
  40.         celda.onclick = function (){click()};
  41.          
  42.         var textoCelda = document.createTextNode("Tarea 1");
  43.         aux--;
  44.       }
  45.       //Si corresponde a la primera columna (tus fechas)
  46.       else if(i==0){
  47.         var celda = document.createElement("td");
  48.         var textoCelda = document.createTextNode("Fecha "+(j+1));
  49.        }
  50.        //Si es una fecha en que tu tarea no se ejecuta
  51.        else{
  52.             var celda = document.createElement("td");
  53.             var textoCelda = document.createTextNode(" ");
  54.        }
  55.       celda.appendChild(textoCelda);
  56.       hilera.appendChild(celda);
  57.     }
  58.  
  59.     // agrega la hilera al final de la tabla (al final del elemento tblbody)
  60.     tblBody.appendChild(hilera);
  61.   }
  62.  
  63.   // posiciona el <tbody> debajo del elemento <table>
  64.   tabla.appendChild(tblBody);
  65.   // appends <table> into <body>
  66.   body.appendChild(tabla);
  67.   // modifica el atributo "border" de la tabla y lo fija a "2";
  68.   tabla.setAttribute("border", "1");
  69. }
  70.  
  71. function click(){
  72.     alert("Aquí hay una tarea =D")
  73. }
  74.  
  75. genera_tabla();




DEMO