Foros del Web » Programando para Internet » Javascript »

Problemas en IE (para variar?)

Estas en el tema de Problemas en IE (para variar?) en el foro de Javascript en Foros del Web. Hola! Estoy necesitando una ayudita. En IE sabemos que esto no funciona Código: elem.setAttribute("onmouseover","md_abrir('md_sub"+(i+1)+"');"); ni esto Código: elem.setAttribute("onmouseover","function() { md_abrir('md_sub"+(i+1)+"'); };"); pero sí esto Código: ...
  #1 (permalink)  
Antiguo 28/09/2009, 17:32
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 9 meses
Puntos: 22
Pregunta Problemas en IE (para variar?)

Hola! Estoy necesitando una ayudita.

En IE sabemos que esto no funciona

Código:
elem.setAttribute("onmouseover","md_abrir('md_sub"+(i+1)+"');");
ni esto

Código:
elem.setAttribute("onmouseover","function() { md_abrir('md_sub"+(i+1)+"'); };");
pero sí esto

Código:
elem.onmouseover=function () { md_abrir('md_sub'+(i+1)+''); };
El problema está en que esa última línea se encuentra edntro de un bucle que incrementa i, entonces al hacer click, i toma el último valor.

Necesito que i mantenga el valor que tenía cuando se produjo la asignación, alguna sugerencia?

Gracias
Saludos
  #2 (permalink)  
Antiguo 28/09/2009, 17:44
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 9 meses
Puntos: 22
Respuesta: Problemas en IE (para variar?)

Bueno...

Código:
elem.onmouseover=new Function("md_abrir('md_sub"+(i+1)+"');");
Fue la solución. A veces por mucha práctica que se tenga ante el apuro y haber perdido muchas horas volviendo crossbrowser un extenso script uno pierde la calma y no ve la solución.

Espero que sirva a alguien más.

Saludos!
  #3 (permalink)  
Antiguo 28/09/2009, 17:59
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: Problemas en IE (para variar?)

varias respuestas y alternativas a este problema, infame del bucle for. el problema se da porque el cuerpo del bucle no crea un scope. por tanto, todas las referencia a la variable contiene el ultimo valor.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
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 09:42.