AJAX - Problema al ejecutar funcion Ajax con JQuery

 
Vista:
sin imagen de perfil

Problema al ejecutar funcion Ajax con JQuery

Publicado por Alejandro (1 intervención) el 19/10/2010 15:25:13
Hola, tengo un boton (id="btnbuscar") de busqueda que dispara una funcion jquery....

1
2
3
4
5
6
7
8
x=$("#btnbuscar"); //id del boton de busqueda 
x.click(busqueda);
.... esta funcion (busqueda) muy simple,....
 
function busqueda(){
	$texto=$("#parametro").attr("value");
	busquedaAjax($texto,1,'');                  //envía tres parametros
}

ejecuta la funcion ajax.......

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function busquedaAjax(txt,pg,tabla){
                $.ajax({
		  async:true,
		  type:"GET",
		  dataType:"html",
		  contentType:"application/x-www-form-urlencoded",
		  url:"paginar.php",
		  data:"txt=" + txt +"&pg=" + pg +"&tabla=" + tabla,
		  beforeSend: inicioEnvio,
		  success: envioOkBuscar,
		  timeout: 4000,
		  error: errorEnvio
		})
	}

el retorno lo cargo en un <div id="resultado"></div>

Esta funcion se ejecuta bien pero mi consulta puntual es que al hacer click en el boton Buscar se ejecuta varias veces. Es decir, en el primer click se ejecuta una vez, al segundo se ejcuta dos veces, al tercer click 4 veces , despues 8 y así sucesivamente. Como es un boton de busqueda siempre lo ejecuto varias veces.

Espero que alguien me pueda dar solución porque la verdad que le di muchas vueltas y no hay caso.
Desde ya doy GRACIAS por las respuestas

Sdos, Alejandro.-
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema al ejecutar funcion Ajax con JQuery

Publicado por Giovanni Ariza (1 intervención) el 11/12/2011 17:26:51
Hola estuve leyendo tu problemas, y actualmente estoy haciendo una aplicación y me esta pasando la misma falla, me preguntaba si sabes como solucionar ese problema....

Gracias ante todo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema al ejecutar funcion Ajax con JQuery

Publicado por uZIEL (1 intervención) el 12/02/2012 02:42:23
teNGO EL MISMO PROBLEMA AYUDA POR FAVOR!!!!!!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema al ejecutar funcion Ajax con JQuery

Publicado por gabouh (1 intervención) el 15/02/2015 20:14:24
Hola Alejandro,
Espero aún te sirva este comentario. Yo tambien estaba teniendo el mismo problema, en realidad era el mismo efecto que describes, en el primer click se ejecutaba 1 vez mi funcion y en el segundo click se ejecutaba 2 veces y con el mismo patron, estuve experimentando y tambien pude analizar otros patrones, sin embargo encontre una respuesta en ingles que describe porque(no se si sea tu caso) no tener funciones o eventos click anidados, porque esto provoca que la funcion se vuelva a llamar a si misma en un segundo contexto o en un nuevo contexto. Este es el link: http://stackoverflow.com/questions/22180953/why-is-jquery-click-event-firing-multiple-times.

Yo tenia un código donde tenia asi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
$(".editEquipo").click(function (e) {
	var pos = $(this).parent().parent();
	$('#nuevoEquipoModal').click(function(e){
		$.ajax({
			type: "POST",
			url: "assets/php/nEquipo.php",
			cache: false,
			data: {dataEnviada:editadoEquipo},
			success: function(data)
			{
				alert(data);
				alert("Exito!");
				$('#modal-editEquipo').modal('hide');
 
			},error: function(){
				alert("Error JSON!");
			}
		});
	});
});
/////////////////////////////////Lo cambie a algo asi:
var viejoEquipo = [];
var request;
$(".editEquipo").click(function (e) {
		var pos = $(this).parent().parent();
		viejoEquipo[0] = pos.siblings('td.nombreEquipo').text();
		viejoEquipo[1] = pos.siblings('td.descEquipo').text();
		viejoEquipo[2] = pos.siblings('td.permitidoEquipo').text();
		$('#nombreEquipoModal').val(viejoEquipo[0]);
		$('#descEquipoModal').val(viejoEquipo[1]);
		$('#permitidoEquipoModal').val(viejoEquipo[2]);
	});
$('#nuevoEquipoModal').click(function(e){
	var editadoEquipo = [];
	if (!request) {
 
		request = $.ajax({
			type: "POST",
			url: "assets/php/nEquipo.php",
			cache: false,
			data: {dataEnviada:editadoEquipo},
			success: function(data)
			{
				alert(data);
				alert("Exito!");
				$('#modal-editEquipo').modal('hide');
 
			},error: function(){
				alert("Error JSON!");
			},complete: function(){
				request = null;
			}
		});
	}
});
////////////////////////////// De esa manera esta todo separado, y aparte le agregue la variable request que ahi voy acumulando la llamada ajax, si no se ejecuta se almacena y se ejecuta y cuando se completa se limpia.

Saludos, Gabouh
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Problema al ejecutar funcion Ajax con JQuery

Publicado por Priscila (1 intervención) el 17/07/2015 04:26:58
Ha pasado tiempo, pero gracias . Yo tenia el mismo problema, me reventé la cabeza como 2 horas buscando fallas en el código xD y no encontraba nada.
De aquí en adelante todo separadito jejej

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar