Foros del Web » Programando para Internet » Javascript »

error Explorer con previous y next

Estas en el tema de error Explorer con previous y next en el foro de Javascript en Foros del Web. buenas, tengo un problemilla con el explorer, en firefox me funciona correctamente. Tengo una funcion en javascript donde utilizo DOM para generar el pase de ...
  #1 (permalink)  
Antiguo 15/04/2009, 01:24
 
Fecha de Ingreso: febrero-2004
Mensajes: 125
Antigüedad: 20 años, 2 meses
Puntos: 0
error Explorer con previous y next

buenas, tengo un problemilla con el explorer, en firefox me funciona correctamente.

Tengo una funcion en javascript donde utilizo DOM para generar el pase de imagenes de una galería.

Código:
function anterior(){     
    var li = imagenActual.parentNode.previous();
    if(li){
        .........................
    }
}
Código:
function siguiente(){     
    var li = imagenActual.parentNode.next();
    if(li){
        .........................
    }
}
El error que me da SÓLO en el explorer 6.0 es: "el objeto no acepta esta propiedad o método"
Se refiere al next() y previous().
¿Sabéis de alguna solución (o alternativa con un comando parecido) para el explorer?????.

gracias
  #2 (permalink)  
Antiguo 15/04/2009, 03:30
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: error Explorer con previous y next

Deberías referenciar con previousSibling y nextSibling, y tener cuidado con los espacios ya que hay navegadores que los consideran nodos. Un ejemplo:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title>Documento sin t&iacute;tulo</title>
<
script>
var 
imagenActual='primera';
function 
anterior(){     
    if(
imagenActual=='primera')return;
    for(var 
i=0,im;im=document.getElementById(imagenActual).parentNode.parentNode.getElementsByTagName('img')[i];i++)
        
im.width=50;
    
document.getElementById(imagenActual).parentNode.previousSibling.childNodes[0].width=100;
    
imagenActual=document.getElementById(imagenActual).parentNode.previousSibling.childNodes[0].id;
    
}
function 
siguiente(){     
    if(
imagenActual=='ultima')return;
    for(var 
i=0,im;im=document.getElementById(imagenActual).parentNode.parentNode.getElementsByTagName('img')[i];i++)
        
im.width=50;
       
document.getElementById(imagenActual).parentNode.nextSibling.childNodes[0].width=100;
    
imagenActual=document.getElementById(imagenActual).parentNode.nextSibling.childNodes[0].id;
}
</script>
</head>

<body>
<ul>
<li><img id="primera" src="../img/1.jpg" width="50" /></li><li><img id="centro" src="../img/2.jpg" width="50" /></li><li><img id="ultima" src="../img/3.jpg" width="50" /></li>
</ul>
<a href="javascript:anterior()">anterior</a> | <a href="javascript:siguiente()">siguiente</a> 
</body>
</html> 
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 19:32.