Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Problema con una función: document.getElementById("indentmenu") is null

Estas en el tema de Problema con una función: document.getElementById("indentmenu") is null en el foro de Frameworks JS en Foros del Web. Hola gente! Cómo están? Estoy armando unas cosillas con AJAX y cuando creía que estaba terminado, me apareció el siguiente error: document.getElementById("indentmenu") is null aggEvento() ...
  #1 (permalink)  
Antiguo 14/01/2010, 12:51
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 22 años, 6 meses
Puntos: 1
Problema con una función: document.getElementById("indentmenu") is null

Hola gente! Cómo están? Estoy armando unas cosillas con AJAX y cuando creía que estaba terminado, me apareció el siguiente error:

document.getElementById("indentmenu") is null
aggEvento()
function onload(event) { aggEvento(); }(load )
var links = document.getElementById('indentmenu').getElementsB yTagName('a');\n

La página es esta: DEMO

Armé un menú simple el cual al presionar sobre un item, trae al div contenedor, una página con varias solapas dentro. Las solapas funcionan pero al no cargar el load, no me permite que las solapas seleccionadas queden marcadas, como mostrando la solapa ACTIVA.

Si pruebo aparte y solamente la página que contiene las solapas, funciona todo perfectamente.

¿Me podrían decir si se puede corregir este error?

Muchas gracias por todo y saludos.

MARX
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.

Última edición por marx-pola; 14/01/2010 a las 13:11
  #2 (permalink)  
Antiguo 15/01/2010, 05:26
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 22 años, 6 meses
Puntos: 1
Respuesta: Problema con una función: document.getElementById("indentmenu") is null

Me olvidé de poner el código...

El css es el siguiente:
Código:
/* div exterior contenedor del menu */
.indentmenu{
font: bold 13px Arial;
width: 626px; /*leave this value as is in most cases*/
overflow: hidden;
}

/* divs de los menues de las solapas */
.indentmenu ul{
margin: 0;
padding: 0;
float: left;
width: 630px; /*width of menu*/
border: 1px; /*dark purple border*/
border-width: 1px 0;
background: #C38A87;
}

.indentmenu ul li{
display: inline;
}

.indentmenu ul li a{
float: left;
color: white; /*text color*/
padding: 5px 11px;
text-decoration: none;
border-right: 1px solid #ffffff; /*dark purple divider between menu items*/
}

.indentmenu ul li a:visited{
color: white;
}

.indentmenu ul li a:hover, .indentmenu ul li .current{
color: white !important; /*text color of selected and active item*/
padding-top: 6px; /*shift text down 1px for selected and active item*/
padding-bottom: 4px; /*shift text down 1px for selected and active item*/
background: #9C2F29;
}

/* div del contenido de las solapas */

#divcontenidos {
	display: inline;
    margin:0px;
	float: left;
	padding:23px;
    padding-top:0px;   
	width:580px;
}
La parte de AJAX es esta:
Código:
var cajasmicroinf = new Array(
				'quienes somos',
				'mision',
				'vision',
				'pensamiento',
				'reglamento',
				'encuesta');
		var microinf = new Solapas(cajasmicroinf,'Inf');

function Solapas(cuales,activo){
	var cajas = cuales;
	var estilo = activo;
	var div = null;
	this.solapas = solapas;

function solapas(cual){
		//div = 'aj' + cual;
		for (i=0;i<cajas.length;i++){
			var divcual = document.getElementById('li' + cajas[i]);
			var divmayor = document.getElementById(cajas[i]);
			if(cajas[i] == cual){
				divmayor.style.display = 'block';
			} else{
				divmayor.style.display = 'none';
			}
		}
	}

}

function aggEvento(){
	var links = document.getElementById('indentmenu').getElementsByTagName('a');
	for(i=0; links[i]; i++){
		links[i].onclick = function(){
			var links = document.getElementById('indentmenu').getElementsByTagName('a');
			for(j=0; links[j]; j++){
				links[j].className = '';
			}
			this.className = 'current';
		}
	}
}
La función aggEvento deberia cargarse en la siguiente línea:

Código HTML:
<body id="top" onLoad="aggEvento()">
...
</body> 
Y la línea de AJAX donde me aparece el error es en esta:
Código:
function aggEvento(){
	var links = document.getElementById('indentmenu').getElementsByTagName('a');
Y el error es este:
Código:
document.getElementById("indentmenu") is null
aggEvento()
function onload(event) { aggEvento(); }(load )
var links = document.getElementById('indentmenu').getElementsB yTagName('a');\n
Me podrçian decir por favor por quçe me tira ese error y como podrçia corregirlo?

Muchas gracias a todos.

MArx.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #3 (permalink)  
Antiguo 18/01/2010, 08:21
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: Problema con una función: document.getElementById("indentmenu") is null

Tenes el script en la cabecera no?
Proba pasando todo tu script al final de todo, antes de </body> y me decis
__________________
HV Studio
Diseño y desarrollo web

Etiquetas: ajax, null
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 00:03.