Foros del Web » Programando para Internet » Javascript »

Cambio estilo filas con input

Estas en el tema de Cambio estilo filas con input en el foro de Javascript en Foros del Web. Hola a todos. Tengo un problema con un comportamiento en teoría sencillo, pero que me esta dando algunos quebraderos de cabeza. Estoy intentando hacer que ...
  #1 (permalink)  
Antiguo 17/11/2009, 09:53
 
Fecha de Ingreso: mayo-2008
Mensajes: 5
Antigüedad: 16 años
Puntos: 0
Cambio estilo filas con input

Hola a todos. Tengo un problema con un comportamiento en teoría sencillo, pero que me esta dando algunos quebraderos de cabeza.

Estoy intentando hacer que una tabla resalte cada una de sus filas cuando el puntero del ratón pase por encima de ellas. El problema viene porque esas filas a su vez contienen campos de formulario, y al pasar el ratón sobre ellos los eventos se vuelven un poco locos y dan como resultado que algunas filas queden resaltadas constantemente o que no se seleccionen.

El código que estoy usando sería este:
script language="javascript">

function cambiaEstilo(id){
document.getElementById(id).style.cursor='pointer' ;
if(document.getElementById(id).className=="RegSele ccionado"){
document.getElementById(id).className="";
}else{
document.getElementById(id).className="RegSeleccio nado";
}
}

</script>

<table width="90%" border="0" align="center">
<tr id="fila1" onmouseover="cambiaEstilo(this.id,event)" onmouseout="cambiaEstilo(this.id,event)">
<td width="33%" class="CeldaNoModificableImpar">Celda 1</td>
<td width="33%" class="CeldaNoModificableImpar"><input type="text" name="textfield" id="textfield" /></td>
</tr>
<tr id="fila2" onmouseover="cambiaEstilo(this.id,event)" onmouseout="cambiaEstilo(this.id,event)">
<td class="CeldaNoModificablePar">Celda 1</td>
<td class="CeldaNoModificablePar"><span class="CeldaNoModificableImpar">
<input type="text" name="textfield2" id="textfield2"/>
</span></td>
</tr>
<tr id="fila3" onmouseover="cambiaEstilo(this.id,event)" onmouseout="cambiaEstilo(this.id,event)">
<td class="CeldaModificableImpar">Celda 1</td>
<td class="CeldaNoModificableImpar"><input type="text" name="textfield3" id="textfield3" /></td>
</tr>
</table>

Bueno a ver si alguien puede echarme una mano. Muchas gracias por adelantado.
  #2 (permalink)  
Antiguo 17/11/2009, 10:38
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Cambio estilo filas con input

el codigo funciona bien, no tiene nada mal. no estoy seguro del comportamiento que mencionas. cuando pasas el puntero entre las filas, cambia a normal y luego a la mano. eso es normal por el espacio que hay entre cada fila. si es ese el comportamiento que dices, elimina el espacio entre filas o en lugar de asignar el evento entre las filas asignalo a la tabla. o bien usa completambien css.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 17/11/2009, 10:49
 
Fecha de Ingreso: mayo-2008
Mensajes: 5
Antigüedad: 16 años
Puntos: 0
Respuesta: Cambio estilo filas con input

Hola zerokilled, gracias por tu respuesta.

Verás el problema viene cuando mueves el ratón rápidamente sobre las filas pasando sobre los inputs. Al ponernos sobre el input, se lanza el evento mouseout de la fila, deseleccionándola, y se vuelve a lanzar el mouseover seleccionándose de nuevo. No se cuando, como ni porque al hacer esto rápidamente los eventos no se gestionan correctamente y las filas quedan resaltadas aunque no estes sobre ellas.

Tengo la cabeza que me va a reventar intentando buscar una solución ...
  #4 (permalink)  
Antiguo 17/11/2009, 10:57
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Cambio estilo filas con input

no logro reproducirlo en firefox3.5, chrome2, ni iexplorer8. tendras que mostrar una captura con el estado del puntero cuando se reproduce el error. de momento estoy pensando que es cosa de tu navegador.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 18/11/2009, 02:48
 
Fecha de Ingreso: mayo-2008
Mensajes: 5
Antigüedad: 16 años
Puntos: 0
Respuesta: Cambio estilo filas con input

Parece que si. El problema sucedía con Firefox 1.5, al actualizar ha desaparecido. Voy a ver si convenzo al cliente para que actualice jeje.

Muchas gracias por todo.
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 10:10.