Foros del Web » Programando para Internet » Javascript »

Cambiar atributo onMouseOver en una fila creada con insertRow

Estas en el tema de Cambiar atributo onMouseOver en una fila creada con insertRow en el foro de Javascript en Foros del Web. Holas: Tengo un pequeño problema, he insertado dinámicamente en una tabla varias filas mediante la función insertRow(), el tema es que ahora necesito cambiar el ...
  #1 (permalink)  
Antiguo 24/03/2006, 11:25
 
Fecha de Ingreso: agosto-2004
Mensajes: 131
Antigüedad: 19 años, 8 meses
Puntos: 2
Pregunta Cambiar atributo onMouseOver en una fila creada con insertRow

Holas:

Tengo un pequeño problema, he insertado dinámicamente en una tabla varias filas mediante la función insertRow(), el tema es que ahora necesito cambiar el atributo onMouseOver para que llame a una función javascript cuando el mouse pase por sobre la fila y no sé cómo hacerlo :(

Actualmente lo puedo hacer con tablas que genero desde ASP con las siguientes atributos:

<tr onMouseOver="verDetalleProyecto(1);this.style.back ground='#FBFFCC';">

Lo que hace es llamar a la función javascript verDetalleProyecto() y además de eso cambia el color de la fila. Eso mismo quiero llevarlo a una fila creada con insertRow(), ¿Alguien sabe cómo?.

Muchas gracias por su invaluable ayuda :)

Salu2,

Rodrigo
  #2 (permalink)  
Antiguo 24/03/2006, 11:34
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola rProgged

Supongo que haces algo así:

fila = tutabla.insertRow(5);

A continuación puedes añadir:

fila.onmouseover = function() {verDetalleProyecto(1); this.style.background='#FBFFCC';}

Espero que te funcione. Saludos,
  #3 (permalink)  
Antiguo 24/03/2006, 11:55
 
Fecha de Ingreso: agosto-2004
Mensajes: 131
Antigüedad: 19 años, 8 meses
Puntos: 2
Muchas gracias JavierB, funciona perfecto.

Salu2,

Rodrigo
  #4 (permalink)  
Antiguo 24/03/2006, 12:14
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Muchas de nada. Me alegro de que te haya funcionado. Hasta otra
  #5 (permalink)  
Antiguo 24/03/2006, 15:25
 
Fecha de Ingreso: agosto-2004
Mensajes: 131
Antigüedad: 19 años, 8 meses
Puntos: 2
Pregunta

Hola JavierB, te cuento que la otra llego pronto jejeje

voy a complicar un poco la situación, mi código es el siguiente:

for ( j=0;j...
{
var tabla = window.frames['presupuesto'].document.getElementById("proyectos");
var fila = tabla.insertRow(cont_filas);
fila.onmouseover = function() {verDetalleProyecto(detalleProyecto[j]);this.style.background='#FBFFCC';}
fila.onmouseout = function() {quitarDetalleProyecto();this.style.background='#F FEAD5';}
fila.style.backgroundColor = "#FFEAD5";
}

Mi problema es el siguiente, tengo que pasarle a la función verDetalleProyecto un parámetro que es el id del proyecto, estos están contenidos en un array javascript.

Mi gran problema radica en que cuando creo las filas sin importar cuántas cree siempre pasa el id de la primera fila creada, me explico un poco mejor

Tengo un ciclo for(j) que basicamente controla la cantidad de filas que hay que crear, el tema es que yo paso el id del proyecto como detalleProyecto(j), por ende primero deberia pasar el detalleProyecto(0) luego el (1) luego el (2) y así hasta N. El tema es que todas las filas creadas dinámicamente quedan haciendo referencia al detalleProyecto(0) y no tengo idea por qué

Estaré haciendo algo mal?, se te ocurre alguna posible solución?

De antemano muchisimas gracia, haz sido de gran ayuda.

Saludos,

Rodrigo
  #6 (permalink)  
Antiguo 24/03/2006, 16:40
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Estas cosas siempre suelen dar "problemillas"...

Yo suelo poner un atributo id en los elementos nuevos, y al crear funciones paso como parámetro el propio id...

fila.id = "fila" + j;
fila.onmouseover = function() {verDetalleProyecto(this.id);this.style.background ='#FBFFCC';}

Claro que tendrías que redefinir luego las funciones.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 27/03/2006, 09:20
 
Fecha de Ingreso: agosto-2004
Mensajes: 131
Antigüedad: 19 años, 8 meses
Puntos: 2
Muchísimas gracias Caricatos, he hecho lo que haz dicho y funcionó perfecto, gran valor

Saludos a todos, y muchas gracias

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 03:42.