JQuery - Problema con DOM y AJAX

   
Vista:

Problema con DOM y AJAX

Publicado por Jesus jesushuertaarrabal@gmail.com (1 intervención) el 23/12/2011 17:21:59
[QUOTE=starlightphp;4075714]Mi problema surge en el fichero home.inc.php. en el que cargo todo lo relacionado con JavaScript y JQUERY. El problema es que cargo el DOM y hay elementos con Id que no existen todavía en mi formulario porque no los he llamado a las funciones correspondientes para generarlos, me explico. Cuando elijo una opción en mi menú de la página, llamo a AJAX

[HIGHLIGHT="Javascript"]
$(document).ready(function(){
$("#Statistic").click(function(){
$("#Statistics").load("../ajax/Estadisticas.php",{Control_Var:1});
});
$("#Consultar3").click(function(){
$("#Statistics").load("../ajax/Estadisticas.php",{Control_Var:2});
});
});
[/HIGHLIGHT]

y aquí la función AJAX:

[HIGHLIGHT="PHP"]
if ($_REQUEST['Control_Var'] == 1){
$variable_UIModules = new UIModules;
$result = $variable_UIModules->Crear();
echo $result;
[/HIGHLIGHT]

Ajax llama al fichero UIModules.php y se trae su contenido

[HIGHLIGHT="PHP"]
$print.='<input id="Consultar3" type="button" value="Consultar" style="width:110; height:25"><br>';
echo $print;
[/HIGHLIGHT]

Claro, el DOM de la página home carga todo pero NO ENCUENTRA #Consultar3 porque aún no lo he cargado. SE CARGA POR AJAX Y HASTA QUE NO LO REQUIERA, NO SE VA A CARGAR.
Alguna idea al respecto?[/QUOTE]
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
Imágen de perfil de xve

Problema con DOM y AJAX

Publicado por xve (557 intervenciones) el 29/12/2011 00:16:07
Hola Jesus, ese problema es tipico, todo lo que se carga en AJAX, no existe en el DOM, por lo que no podrás utilizarlo con funciones ya cargadas de javascript.
Para ello, cada vez que necesito gestionar un contenido generado con ajax, en el mismo ajax que pinta el contenido, creo las instrucciones de jquery... algo así:

1
2
3
4
5
6
7
$.post("ajax_file.php", {variables...}, function(data){
    $("#idresult").html(data.content);
    // Aqui genero las funciones sobre el posible contenido, por ejemplo para el click sobre los inputs...
    $("#idresult input").click(function(){
        ....
    });
},"jquery");

Espero que te sirva de ayuda.
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