Foros del Web » Programando para Internet » Javascript »

Cambiar color de fondo a celda con Onclick

Estas en el tema de Cambiar color de fondo a celda con Onclick en el foro de Javascript en Foros del Web. Hola Amigos del foro espero me puedan colaborar, tengo el siguiente codigo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código php: Ver original <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 ...
  #1 (permalink)  
Antiguo 13/01/2011, 14:17
 
Fecha de Ingreso: noviembre-2008
Mensajes: 55
Antigüedad: 15 años, 5 meses
Puntos: 0
Cambiar color de fondo a celda con Onclick

Hola Amigos del foro espero me puedan colaborar, tengo el siguiente codigo:

Código php:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <html>
  3.   <head>
  4.     <title>Untitled</title>
  5.    <script language="javascript" type="text/javascript">
  6.    function ilumina(celda){
  7.     if (celda.style.backgroundColor=="yellow")
  8.         {
  9.         celda.style.backgroundColor="green";
  10.         }
  11.     else
  12.         {
  13.         celda.style.backgroundColor="yellow";
  14.         }
  15.     }
  16.   </SCRIPT>
  17.   </head>
  18.   <body>
  19.     <table border="1" width="50%">
  20.         <tr>
  21.             <td bgcolor="green" onclick="ilumina(this)">&nbsp;</td>
  22.             <td bgcolor="green" onclick="ilumina(this)">&nbsp;</td>
  23.             <td bgcolor="green" onclick="ilumina(this)">&nbsp;</td>
  24.             <td bgcolor="green" onclick="ilumina(this)">&nbsp;</td>
  25.         </tr>
  26.         <tr>
  27.             <td bgcolor="yellow" onclick="ilumina(this)">&nbsp;</td>
  28.             <td bgcolor="yellow" onclick="ilumina(this)">&nbsp;</td>
  29.             <td bgcolor="yellow" onclick="ilumina(this)">&nbsp;</td>
  30.             <td bgcolor="yellow" onclick="ilumina(this)">&nbsp;</td>
  31.         </tr>
  32.   </table>
  33.   </body>
  34. </html>

La idea es que al dar click sobre cualquiera de las celdas me cambie el color de fondo. Es decir de Amarillo a Verde y de Verde a Amarillo.

El Problema radica en que las celdas Amarillas inicialmente no cambian a Verde en el primer clickeo asi que necesita de 2. Aclaro al inicio del aplicativo y solo la primer vez, a diferencia de las verdes que si cambian en el primer click.

Creo que el problema tiene que ver en la forma en que declar los background ya que en la celda los delaro como bgcolor mientras que en el "if de la funcion javascript" los comparo como: "style.backgroundColor", ya he intentado de varias maneras pero aun no comprendo como hacerlo.

De antemano agradezco su colaboración.
  #2 (permalink)  
Antiguo 13/01/2011, 14:27
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Cambiar color de fondo a celda con Onclick

Pon bgColor en JS, o style='background-color:...' en el HTML.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 13/01/2011, 14:34
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Cambiar color de fondo a celda con Onclick

mira como la explicación iba a ser larga
Cita:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
  <head>
    <title>Untitled</title>
   <script language="javascript" type="text/javascript">
window.onload = function() {
var td= document.getElementsByTagName('td');
for (var i= 0; i < td.length; i++) {
td[i].onclick = function() {
this.className = this.className == "yellow" ? "green" : "yellow";
   }
}

};
  </SCRIPT>
<style type="text/css">
.yellow { background: yellow;}
.green {background: green;}
</style>
  </head>
  <body>
    <table border="1" width="50%">
        <tr>
            <td class="green" >&nbsp;</td>
            <td class="green">&nbsp;</td>
            <td class="green">&nbsp;</td>
            <td class="green">&nbsp;</td>
        </tr>
        <tr>
            <td class="yellow">&nbsp;</td>
            <td class="yellow">&nbsp;</td>
            <td class="yellow">&nbsp;</td>
            <td class="yellow">&nbsp;</td>
        </tr>
  </table>
  </body>
</html>
si te interesa entender el código busca información sobre getElementsByTagName, funciones anónimas y sobre la propiedad className
  #4 (permalink)  
Antiguo 13/01/2011, 14:40
 
Fecha de Ingreso: noviembre-2008
Mensajes: 55
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Cambiar color de fondo a celda con Onclick

Cita:
Iniciado por _cronos2 Ver Mensaje
Pon bgColor en JS, o style='background-color:...' en el HTML.
Saludos (:
Funciono Perfectamente con: style='background-color:....' en el HTML mientras que con bgColor aun sigue generando conflicto.....De igual manera agradezco tu colaboración ya que tu respuesta fue la adecuada.......
  #5 (permalink)  
Antiguo 09/05/2011, 05:48
 
Fecha de Ingreso: mayo-2011
Mensajes: 1
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Cambiar color de fondo a celda con Onclick

Estaba buscando algo parecido a este código pero con la salvedad de que la primera celda de la primera fila está en color amarillo, y quisiera que cuando clique en otra celda de la misma fila, la primera cambie al color del resto, el verde.
No se si me he explicado, espero que sí.
Muchas gracias.

Etiquetas: celda, color, fondo, onclick
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 07:09.