Foros del Web » Programando para Internet » Javascript »

Colorear celdas

Estas en el tema de Colorear celdas en el foro de Javascript en Foros del Web. Tengo una tabla, que colorea la fila y vuelve a su color cuando paso el mause pero ademas quiero que al darle click mantenga el ...
  #1 (permalink)  
Antiguo 19/02/2014, 11:25
 
Fecha de Ingreso: agosto-2010
Mensajes: 127
Antigüedad: 13 años, 7 meses
Puntos: 1
Colorear celdas

Tengo una tabla, que colorea la fila y vuelve a su color cuando paso el mause pero ademas quiero que al darle click mantenga el color como puedo hacerlo ya que mi codigo tambien cambia de color cuando le doy click pero con los eventos del mause pierde el color
  #2 (permalink)  
Antiguo 19/02/2014, 16:23
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Colorear celdas

Una solución (entre las tantas que se pueden crear) para lo que buscas, es trabajar con atributos personalizados. Puedes asignar un atributo "data-click", el cual manejará dos valores; 1 y 0. Cuando le des un clic a la fila, se asigna el valor 1, esto es para que cuando pasemos el puntero del mouse sobre dicha fila y luego lo retiremos, no cambie el color que tomó, pero si le damos otro clic, el valor del atributo "data-click" será igual a cero y sí podrá cambiar el color al retirar el puntero del mouse de la fila en cuestión.

Código Javascript:
Ver original
  1. var filas = document.getElementsByTagName("tr"),
  2.     total = filas.length;
  3.  
  4. for (i = 0; i < total; i++){
  5.     filas[i].addEventListener("mouseover", function(){
  6.         this.style.background = "red";
  7.     }, false);
  8.    
  9.     filas[i].addEventListener("mouseout", function(){
  10.         if (!this.getAttribute("data-click") || this.getAttribute("data-click") == 0)
  11.             this.style.background = "white";
  12.         console.log(this.getAttribute("data-click"));
  13.     }, false);
  14.    
  15.     filas[i].addEventListener("click", function(){
  16.         if (!this.getAttribute("data-click") || this.getAttribute("data-click") == 0)
  17.             this.setAttribute("data-click", 1);
  18.         else
  19.             this.setAttribute("data-click", 0);
  20.     }, false);
  21. }

DEMO: http://jsfiddle.net/Wj7Fj/

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: celdas, colorear
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:46.