Ver Mensaje Individual
  #4 (permalink)  
Antiguo 28/07/2007, 20:57
Volrath
 
Fecha de Ingreso: septiembre-2003
Ubicación: Pirexia
Mensajes: 150
Antigüedad: 21 años, 3 meses
Puntos: 1
Re: getElementById y ajax :S

Cita:
Iniciado por stock Ver Mensaje
mira, la instruccion window.addEvent('domready') me indica que estas utilizando mootools, verdad? ahora, esta funcion permite ejecutar codigo inmediatamente cuando el DOM esta listo, los nodos que le agregues al DOM estaran visibles hasta que tu los borres, y puedes accesarlos con la funcion dolar $('bla') o bien con el document.getElementById('bla').

have funnnnnnnn
Hola, si, estoy usando mootools, y eso que me dijiste es lo ke estoy haciendo, pero tengo un problema distinto, kiza no me explique bien antes, voy a hacerlo de forma mas detallada ahora:


El codigo es medio largo y tiene muchas cosas ke no son utiles, asi ke lo voy a colocar medio resumido, Ademas estoy trabajando con mootools (es la unica libreria ke conozco, asi que no sabre como hacer comparaciones con prototype, jquery o cualquier otra :S)

Aqui va el codigo:
Código:
window.addEvent('domready', function() {
	var list = $$('ul#listaUsuarios li');
	var msol = new Fx.Slide('mostrarSolicitudes').hide();
	var advt = new Fx.Slide('advForm').hide();
	/*
	 * Primero defino lo que va a hacer cada uno de los li de la lista de usuarios
	 */
	list.each(function(element) {
				
		var fx = new Fx.Styles(element, {duration:100, wait:false});
		
      //
      // ESTE ES EL UNICO EVENTO IMPORTANTE, LOS OTROS DOS SON DECORACION
		element.addEvent('click', function(){
			// Pongo el mensaje de espera en userProfile.
			$('userProfile').innerHTML="<div class=\"userCargador\"><img src=\"/sitemedia/images/icons/loader2.gif\" title=\"Cargando\"><br />Cargando...</div>"
			// Cierro MOSTRAR SOLICIUTDES
			msol.hide();
			
                   // Aqui van otras cosas de diseno que no vale la pena copiar
                   // ...
		
			// Seteo la url a pedir la informacion
			url = "/usuarios/"+carnet+"/";
			
			// Hago la peticion para recargar userProfile
			new Ajax(url, {       // ESTO ESTA HECHO CON LA CLASE AJAX DE MOOTOOLS.
				method: 'post',  /// PERO YA PROBE HACIENDOLO SIN ESTA CLASE, E IGUAL SIGO CON EL PROBLEMA
				update: $('userProfile'),
			}).request();
		
                    // FUNCION QUE SE ENCARGA DE PONER DATOS QUE NO TIENEN QUE VER CON EL PROBLEMA
			setearDatos(carnet);
		});
		
		element.addEvent('mouseenter', function(){
			// ...
		});
		
		element.addEvent('mouseleave', function(){
			// ...
		});
	});


	/*
	 * Mostrar Solicitudes
	 */
	$('toggleMe').addEvent('click', function(e) {
		e = new Event(e).stop();
		msol.toggle();
	});

	/*
	 * Advertir
	 */
	 $('advertir').addEvent('click', function(e) {
	 	e = new Event(e).stop();
		advt.toogle();
	 });
});
Ok, ahora explico un poco esto...
En mi html tengo un ul#listaUsuarios con una lista de usuarios. y tambien tengo un div#userProfile donde se van a cargar asincronamente los datos de el usuario que sea cargado en la lista. Inicialmente este div#userProfile se encuentra vacio, con esto quiero decir, al momento de cargar la pagina.

Luego lo voy a actualizar con la informacion que obtengo desde la url "/usuarios/"+carnet+"/", esta url me devuelve algo mas o menos asi:

Código:
<h2>Daniel Barreto</h2>
		<hr />
		<div class="advAmarillo">
			<p>
				<a href="#1" id="advertir" name="Advertir">(0) Advertir</a><br />
				<a href="#1" id="bannear" name="Bannear">Bannear Directamente</a><br />
				<a href="04-36723/prestamos/">Mostrar Solicitudes</a>
			</p>
		</div>
entonces ahi es donde esta el problema, para el momento de darle click a un usuario en la lista de usuarios, me devuelve ese contenido generado dinamicamente, y en ese contenido esta el link <a href="#1" id="advertir" name="Advertir">(0) Advertir</a> cuyo id es obviamente "advertir" y es el que quiero que cause un efecto al ser presionado. como se puede ver en las lineas:
/*
* Advertir
*/
$('advertir').addEvent('click', function(e) {
e = new Event(e).stop();
advt.toogle();
});

el error que tengo es que como $('advertir') ,que es similar a getElementById('advertir') en mootools, (no se si en las otras librerias tambien, no manejo mucho js ni nada asi que solo hablo de lo poco que he aprendido de mootools :P) no lo consigue el javascript al cargar la pagina me da el error de $(advertir) has no properties.

Creo que la cuestion esta en que todo esto esta en un window.addEvent('domready', function...), al momento de cargar el dom inicial, donde no esta a#advertir, me da este error. pero n he logrado corregirlo :S
__________________
In a world without walls, who needs Windows?