Comunidad de diseño web y desarrollo en internet online

AJAX y jQuery, sólo funciona una vez.

Citar            
MensajeEscrito el 19 Abr 2012 09:05 pm
Qué tal.

Espero puedan ayudarme, recién inicié a utilizar AJAX con jQuery y me ocurre el siguiente inconveniente, les pongo el código:

Código Javascript :

$(function(){
   // Setup AJAX
   $.ajaxSetup ({
      cache: false
   });
   var ajax_load = "Cargando...";
   var loadUrl = "brain_panel.php";
   $(".cats_item a").live("click", function(e){
      e.preventDefault(); 
      var params = "?act=getSubCategorias";
      loadUrl += params;
      $("#sub_cats_list").html(ajax_load).load(loadUrl);
   });
});


Sucede al hacer click la primera vez, me muestra la leyenda de "Cargando" y cambia el contenido del div: "sub_cats_list" correctamente. Pero si vuelvo a hacer click, sólo me muestra la leyenda "Cargando", y no hace nada más.

Espero puedan ayudarme.

Por Arc_Daniel

12 de clabLevel



Genero:Masculino  

msie8
Citar            
MensajeEscrito el 21 Abr 2012 07:53 pm
Hola veo un errorcillo en el código

Código Javascript :

$(function(){
   // Setup AJAX
   $.ajaxSetup ({
      cache: false
   });
   
   var ajax_load = "Cargando...";
   var loadUrl = "brain_panel.php";
   
   $(".cats_item a").live("click", function(e){
      e.preventDefault();
      var params = "?act=getSubCategorias";
     
     //loadUrl += params;
     //En esta linea veo un fallo que no se si tendrá que ver con que no te acabe de cargar, pero puede ser
     //Cada vez que haces click, vas agregando texto a tu variable loadUrl
     //Es decir el primer click tendrías
     loadUrl = 'brain_panel.php?act=getSubCategorias'
     //El siguiente click sería
     loadUrl = 'brain_panel.php?act=getSubCategorias?act=getSubCategorias'
     //Y así sucesivamente
     //Deberías meter la variable loadUrl al principio de la funcion del live, o reiniciarla antes de sumarle los parámetros
     loadUrl = 'brain_panel.php';
     loadUrl += params;
           
     $("#sub_cats_list").html(ajax_load).load(loadUrl);
   });
});


Revísalo y nos cuentas.
Un salduo.

Por Abducted

Claber

489 de clabLevel

3 tutoriales

Genero:Masculino  

Mentalidad Renovada

chrome
Citar            
MensajeEscrito el 10 Jul 2012 02:45 pm
Gracias Abducted, un poco tarde mi respuesta, jaja...
No había visto el errorcillo que me comentas, pero al parecer sí era algo relacionado con el envío de variables lo que me daba el problema. Lo solucioné de esta forma:

Código Javascript :

$(function(){
   // Setup AJAX
   $.ajaxSetup ({
      cache: false
   });
   var ajax_load = "Cargando...";
   var loadUrl = "brain_panel.php";
   $(".cats_item a").live("click", function(e){
   e.preventDefault(); 
   $("#sub_cats_list").html(ajax_load).load(loadUrl,{act:"getSubCategorias"});
    });
});


Después de un ratillo de estar Googleando, vi que la funcion load() de jQuery puede llevar parametros, así que no era necesario enviarlos como String agregados a la URL. Novatada, sinceramente.

Por Arc_Daniel

12 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.