Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/03/2011, 04:15
jesusjj
 
Fecha de Ingreso: noviembre-2007
Mensajes: 154
Antigüedad: 17 años
Puntos: 2
Pregunta jQuery: Problemas para contenido cargado por post

Buenos días:

Estoy haciendo una parte de una web en el que el intercambio de páginas lo devuelvo por post para agregar efectos 'fade' al pasar de una a otra.

Para esto, en el menú llamo a una función en javascript, que recoge unos parámetros para hacer el post a una página php que devuelve un include, que cargo como html en una capa:
Código Javascript:
Ver original
  1. function getInfo(liId) {
  2.     var capaInfo = $("#cp_detInfo");
  3.  
  4.     $.post('content/includes/php/getInfo.php', { pag: 'info', datos: liId },
  5.         function(data){
  6.             $(capaInfo).hide()
  7.                        .html(data)
  8.                        .fadeIn(2500);
  9.         }
  10.     );
  11. }

Código PHP:
Ver original
  1. if(isset($_POST['pag']) && $_POST['pag']=='info') {
  2.     if(isset($_POST['datos'])) {
  3.         $datos = $_POST['datos'];
  4.  
  5.         switch ($datos) {
  6.            case 'i_gral'    : include("modules/modInfo.inc.php");     break;
  7.            case 'i_gral'    : include("modules/modInfo.inc.php");     break;
  8.            case 'i_finca'   : include("modules/modFinca.inc.php");    break;
  9.            case 'i_contacto': include("modules/modContacto.inc.php"); break;
  10.            case 'i_otra'    : include("modules/modOtra.inc.php");     break;
  11.            default          : include("modules/modInfo.inc.php");     break;
  12.         }
  13.     }else{
  14.         echo "no se ha recibido el identificador";
  15.     }
  16. }else{
  17.     echo "error en la llamada asíncrona";
  18. }

El tema está que para este contenido cargado, no me funcionan después los eventos o comprobaciones jQuery.

Por ejemplo, para el formulario de contacto, en vez de un captcha, en teoría, debería cargar todos los campos input desahbilitados, para luego, tras pulsar en un botón, habilitar de nuevo los campos y agregar un campo hidden de control. Sin embargo, el formulario aparece ya con todos los campos activos y el click sobre el 'botón activador' no 'enlaza' con su funcionalidad jQuery. La primera parte, la de los campos deshabilitados me preocupa menos, porque en vez de bloquearlos mediante jQuery, lo haría directamente en el html, pero el resto de funcionalidad no sé cómo recuperarla.
Código Javascript:
Ver original
  1. $("#contacto :input").attr("disabled", true);
  2.  
  3.     var campoHidden = '<input type="hidden" id="f_contacto" name="f_contacto" value="ok" />';
  4.    
  5.     $("#padlock").click(function(){
  6.        $("#contacto :input").attr("disabled", "");
  7.          $("#contacto").append(campoHidden);
  8.          $("#f_unlock").fadeOut();
  9.     });

¿Qué podría hacer para que no pierda esta funcionalidad?

Muchas gracias.

Saludos