Foros del Web » Programando para Internet » Jquery »

Envío por $.POST: no funciona el js devuelto

Estas en el tema de Envío por $.POST: no funciona el js devuelto en el foro de Jquery en Foros del Web. Buenas, necesito solucionar un problema como sea porque se está repitiendo una y otra vez cada vez hago cualquier cosa, y a lo mejor es ...
  #1 (permalink)  
Antiguo 20/09/2013, 05:53
 
Fecha de Ingreso: febrero-2003
Mensajes: 39
Antigüedad: 21 años, 9 meses
Puntos: 1
Envío por $.POST: no funciona el js devuelto

Buenas, necesito solucionar un problema como sea porque se está repitiendo una y otra vez cada vez hago cualquier cosa, y a lo mejor es un problema de base que tiene fácil solución.
El problema es que al cargar en un div un php con jquery, el javascript que hay en ese php ya no funciona. Un ejemplo sencillo:

index.html
Código HTML:
Ver original
  1.     <script type='text/javascript' src='js/jquery-1.9.1.js'></script>
  2.     <script type='text/javascript' src='js/mi-jquery.js'></script>
  3. </head>
  4.     <div id='capa'>
  5.         <a href='#' id='1' class='borrar'>Borrar el registro 1</a>
  6.         <a href='#' id='2' class='borrar'>Borrar el registro 2</a>
  7.         <a href='#' id='3' class='borrar'>Borrar el registro 3</a>
  8.     </div>
  9. </body>
  10. </html>

mi-jquery.js
Envío el id que quiero borrar con $.post al php que procesa el borrado y que recarga los registros actualizados:
Código Javascript:
Ver original
  1. $(".borrar").click(function(){
  2.       var id = $(this).attr('id');
  3.       $.post("borrar.php", { id: id },  function(respuesta){
  4.             $("#capa").html(respuesta);
  5.       })
  6.    });

borrar.php
Borro con PHP el registro 1 y devuelvo los registros actualizados (omito la función porque no es necesaria para el ejemplo). El resultado devuelto sería algo como:
Código PHP:
<a href='#' id='2' class='borrar'>Borrar el registro 2</a>
<
a href='#' id='3' class='borrar'>Borrar el registro 3</a
La primera vez borra bien, pero la segunda, tras recargar los resultados en el div, ya no. No reconoce la función click de borrar. Supongo que es problema de la carga del jquery, no sé, me trae loco :(
  #2 (permalink)  
Antiguo 20/09/2013, 07:30
 
Fecha de Ingreso: septiembre-2013
Mensajes: 12
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: Envío por $.POST: no funciona el js devuelto

Prueba a utilizar la siguiente función :
Código Javascript:
Ver original
  1. $(".borrar").on('click', function(){
  2.       var id = $(this).attr('id');
  3.       $.post("borrar.php", { id: id },  function(respuesta){
  4.             $("#capa").html(respuesta);
  5.       })
  6.    });
  #3 (permalink)  
Antiguo 20/09/2013, 08:08
 
Fecha de Ingreso: febrero-2003
Mensajes: 39
Antigüedad: 21 años, 9 meses
Puntos: 1
Respuesta: Envío por $.POST: no funciona el js devuelto

Nada, el resultado es el mismo. La única forma de que funcione es cargando en el PHP otra vez las librerías de jquery y mi-jquery.js, pero eso hace que se dupliquen las funciones (al cargarlas otra vez) y me estropea otra parte del código.
  #4 (permalink)  
Antiguo 20/09/2013, 08:47
 
Fecha de Ingreso: febrero-2003
Mensajes: 39
Antigüedad: 21 años, 9 meses
Puntos: 1
Respuesta: Envío por $.POST: no funciona el js devuelto

Es decir, si al principio del borrar.php escribo esto, funciona:

Código PHP:
Ver original
  1. $(".borrar").click(function(){
  2.       var id = $(this).attr('id');
  3.       $.post("borrar.php", { id: id },  function(respuesta){
  4.             $("#capa").html(respuesta);
  5.       })
  6.    });

Pero me da la sensación de estar repitiendo malamente código de jquery.
  #5 (permalink)  
Antiguo 21/09/2013, 05:05
 
Fecha de Ingreso: febrero-2003
Mensajes: 39
Antigüedad: 21 años, 9 meses
Puntos: 1
Respuesta: Envío por $.POST: no funciona el js devuelto

¿Nadie puede ayudarme con este problema? Tiene que haberle pasado a mucha gente, o no haberles pasado si se sabe como hacerlo.

Etiquetas: php, post
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 13:34.