Ver Mensaje Individual
  #3 (permalink)  
Antiguo 26/03/2013, 13:28
cmarrero01
 
Fecha de Ingreso: abril-2011
Ubicación: Mendoza
Mensajes: 42
Antigüedad: 13 años
Puntos: 0
Respuesta: Problema con function LIVE o ON de jquery

Hola Rotten, el tema es el siguiente:

Tengo un menu, que me carga por ajax en un div un contenido determinado, ese contenido tiene codigo javascript que solo lo tiene ese contenido que es llamado por ajax, y sucede que al parecer en vez de reemplasarse el contenido javascript es como si se duplicara, y se ejecutara varias veces esas funciones.

Probe viendo loq ue sucede en la consola con firebug, y resulta que se van duplicando dependiendo de la cantidad de veces que cargue el contenido.

Es muy raro, ya que me aseguro de eliminar por completo lo que contiene el div donde cargo el contenido nuevo.

Esto lo que me produce, es el envio multiple de un formulario.

Asi llamo al contenido desde el menu:

Código HTML:
 this.openinrightpanel = function(page) {
        $('#leftpanel').attr('disabled', true);
        this.showloading();
		$.post(page,function(r){
			if(r){
				$("#rightpanel").html(r);
				self.hideloading();
			}else{
				
			}
		});
        return false;
      
    };
y este es el codigo javascript del contenido que llamo (que lo cargo previamente en el index)

Código HTML:
function Holiday(){
	// Funcion que nos permite darle acciones al alta y edicion de feriados
	this.addHoliday = function(){
		
		$('.newHoliday').live('submit',function(){
  
				var $this = $(this);
				var data = $this.serialize();
				var url = window.location.pathname+'addholiday.php';
				$.post(url,data,function(r){
					console.log(r);
					if(r){
						$('#rightpanel').html(r);
						
					}
			 });
			return false;
		});
		
	}
	
}

y finalmente, este es mi contenido que cargo dinamicamente..

Código HTML:
$(document).ready(function(){
	// Funcion para mostrar el calendario en el input de fecha
	$( "#datepicker" ).datepicker();
	// parseamos el calendario para mostrar en formato ingles
	$( "#datepicker" ).datepicker( "option", "dateFormat", "yy-mm-dd" );
	// Instanciamos holiday para 
	var holidayObject = new Holiday;
	// Acciones para la edicion o carga del formulario
	holidayObject.addHoliday();
});
Saludos
__________________
Claudio A. Marrero - Proyect Manager