Foros del Web » Programando para Internet » Jquery »

Evitar ejecutar varias veces funcion en ajax

Estas en el tema de Evitar ejecutar varias veces funcion en ajax en el foro de Jquery en Foros del Web. Hola, estoy algo confuso con algo, y realmente lo que no se es trabajar bien... me gustaría algun punto de vista adicional Junto a la ...
  #1 (permalink)  
Antiguo 20/06/2016, 05:36
 
Fecha de Ingreso: abril-2002
Mensajes: 33
Antigüedad: 22 años
Puntos: 0
Evitar ejecutar varias veces funcion en ajax

Hola, estoy algo confuso con algo, y realmente lo que no se es trabajar bien... me gustaría algun punto de vista adicional

Junto a la libreria jquery cargo un archivo de funciones .js personal, el problema es que en algunas llamadas ajax necesito recuperar de nuevo ambos js para poder ejecutar ciertas funciones. En varios casos son bucles (paginaciones y demás) y las funciones se ejecutan tantas veces como veces haya cargado de nuevo el ajax, esto me crea un kaos importante en mis ficheros.

Intuyo el problema es cargar varias veces el ready, ya que lo tengo en mi fichero .js de funciones, pero no se como hacerlo para que sea correcto.

Ejemplo parte del js principal (funciones creadas por mi).


Cita:
$(document).ready(function() {


$('#registrar').bind('click',function(){


var email = $("#inputEmail").val();
var pasword = $("#inputPassword").val();
var rma = $(this).attr("id");

var dataString = 'email='+email+'&pasword='+pasword+'&login=si';

$.ajax({
type: "POST",
url: "check_usuario.php",
data: dataString,
success: function(data) {
$('#resultadoregistrar').fadeIn(200).html(data);
}
});
});
});
He conseguido solucionarlo, guardando en un input un valor que anula que se ejecute si el valor ya se ha ejecutado, pero más que una chapucilla de este calibre busco la manera correcta.

¿el ready dentro del .js es correcto? no se si debería returnar falses o cosas de esas.
¿No debo recargar el mismo .js en los ficheros cargados por ajax? Si no lo hago no consigo funcione correctamente.

Gracias por guiarme, cuando llego al foro ya estoy desesperado habitualmente...
__________________
Sergio Sánchez
www.sergio.es
  #2 (permalink)  
Antiguo 09/07/2016, 11:02
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Información Respuesta: Evitar ejecutar varias veces funcion en ajax

Hola Arenas,

solucionaste el problema? creo entender lo que te ocurre pero necesitaria mas informacion por tu parte.

Creo que lo que pretendes explicar es que al HTML que cargas por Ajax no le funcionan los eventos que has declarado en tu fichero de funciones propias, ese es un problema tipico con jQuery para los novatos.

El problema se produce basicamente porque el HTML no existia antes de recibirlo por Ajax.

Si quieres asociar eventos a elementos que aun no se han renderizado en tu HTML debes usar el metodo $().on() en lugar de $().bind() haciendolo asi a todos los elementos presentes y futuros les funcionaran los eventos que crees.

NOTA: Y ni se te ocurra llamar a mas javascripts en los HTML que recibes por Ajax.

Saludos y ya nos contaras.
__________________
El problema de nuestra época consiste en que sus hombres no quieren ser útiles sino importantes.

Winston Churchill

Etiquetas: ajax, funcion, veces
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 03:30.