Foros del Web » Programando para Internet » Javascript »

Mootools - Actualizar eventos, cambiar la funcion que ejecuta un evento

Estas en el tema de Mootools - Actualizar eventos, cambiar la funcion que ejecuta un evento en el foro de Javascript en Foros del Web. Buenas, estoy experimentando y creando mis primeras clases con esta magnifica libreria pero me quede estancado en algo y por mas que me recorri el ...
  #1 (permalink)  
Antiguo 24/03/2007, 10:26
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Mootools - Actualizar eventos, cambiar la funcion que ejecuta un evento

Buenas, estoy experimentando y creando mis primeras clases con esta magnifica libreria pero me quede estancado en algo y por mas que me recorri el foro de mootools y probe varios codigos no doy con la solucion. Basicamente lo que deseo es aplicarle un evento onComplete a un efecto pero que la funcion ejecutada al momento de darse el evento varie segun el momento. Algo asi como cambiar la funcion que ejecuta el evento:

Código:
var Item = new Class({
	initialize: function(name)
	{
		this.name = name;
		this.efecto = new Fx.Slide(name, {duration: 500, mode: 'horizontal'}).hide();
		$(this.name).style.display = 'none';
	},
	toggle: function()
	{
		if($(this.name).style.display == 'none')
		{
			$(this.name).style.display = '';
			this.efecto.hide();

                        /* se que esta no es la manera, pero lo hago solo
                         para que se vea mejor lo que deseo hacer */
                        this.efecto.onComplete = function()
                        {
                                     alert(1);
                        }
			this.efecto.slideIn();
		}else{
                        /* se que esta no es la manera, pero lo hago solo
                         para que se vea mejor lo que deseo hacer */
                        this.efecto.onComplete = function()
                        {
                                     alert(2;
                        }
			this.efecto.slideOut();
			$(this.name).style.display = 'none';
		}
	}
});
La verdad es que es una libreria muy util y practica, pero como aun es relativamente nueva la mayoria de la informacion está en inglés y por consiguiente a veces es un poco mas dificil dar con una solución.


De antemano muchisimas gracias!!
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #2 (permalink)  
Antiguo 24/03/2007, 11:51
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: Mootools - Actualizar eventos, cambiar la funcion que ejecuta un evento

Finalmente lo he logrado gracias al metodo removeEvent. Dejo el codigo por si le sirve a alguien:

Código:
var Item = new Class({
	initialize: function(name)
	{
		this.name = name;
		this.efecto = new Fx.Slide(name, {duration: 500, mode: 'horizontal'}).hide();
		$(this.name).style.display = 'none';
	},
	toggle: function()
	{
		if($(this.name).style.display == 'none')
		{
			$(this.name).style.display = '';
			var name = this.name;
			var efec = this.efecto;
			var uno = function()
			{
				alert("uno");
				efec.removeEvent('onComplete', uno);
			}
			this.efecto.addEvent('onComplete', uno);
			this.efecto.slideIn();
		}else{
			var name = this.name;
			var efec = this.efecto;
			var dos = function()
			{
				alert("dos");
				efec.removeEvent('onComplete', dos);
			}
			this.efecto.addEvent('onComplete', dos);
			this.efecto.slideOut();
		}
	},
});
Saludos!
__________________
Federico.

Mi página: www.jourmoly.com.ar
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 18:35.