Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] actualizar el Dom?

Estas en el tema de actualizar el Dom? en el foro de Jquery en Foros del Web. estimados , tengo el siguiente problema y no logro saber el porque sucede. parte del codigo realiza los siguientes pasos. 1.- boton "registrate" ejecuta una ...
  #1 (permalink)  
Antiguo 12/07/2013, 08:28
 
Fecha de Ingreso: agosto-2010
Mensajes: 4
Antigüedad: 13 años, 8 meses
Puntos: 0
actualizar el Dom?

estimados , tengo el siguiente problema y no logro saber el porque sucede.

parte del codigo realiza los siguientes pasos.
1.- boton "registrate" ejecuta una funcion que inyecta mediante ajax un codigo html, que es tan solo un nuevo boton llamado "btnregistrar".
2.- el boton "btnregistrar" tiene un listener click(function()....) para solo desplegar por ahora un console.log("ahora");

pero resulta que el codigo del "btnregistrar" cuando lo inyecto con ajax no hace nada, si lo copio y lo pego directo en el index, si ejecuta el console.log("ahora");

tengo entendido que el dom es dinamico, si estoy mal me corrigen, pero por lo que veo mi problema radica en que el dom , no se esta actualizando.

aca va el extracto del codigo.

index.php
<div id="registrate" class="cal_reg subt">REGISTRATE</div>
<div id="contentregistro"></div>

Jquery
$(document).ready(function () {
//function que llamara al php que me trae el nuevo boton
$("#registrate").click(function(){
$.ajax({
type: "POST",
url: 'accion.php',
async: false,
data : { accion: "registrate" },
success: function(data) {
$("#contentregistro").html(data);
}
});
});
//Accion que le designo al boton llamado
$("#btnregistrar").click(function(){
console.log("ahora");
});
});

PHP accion.php
if($accion=="registrate"){
echo '<input type="button" id="btnregistrar" name="btnregistrar" value="REGISTRAR">';
exit;
}

PD: utilizo jquery-2.0.2.min

Última edición por machvk; 12/07/2013 a las 08:41 Razón: para agregar un postdata
  #2 (permalink)  
Antiguo 15/07/2013, 07:08
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: actualizar el Dom?

El listener al evento click debes asignarlo después de que el elemento exista en el DOM, después que lo hayas cargado con Ajax; no en el evento ready() como estás haciendo ahora.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 17/07/2013, 07:15
 
Fecha de Ingreso: agosto-2010
Mensajes: 4
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: actualizar el Dom?

gracias david. al final resulto adjunto aca por si a alguien le sirve a futuro.

utilice el metodo "on()."

$("#registrate").click(function(){
$("#contentregistro").html("Cargando...");
$.ajax({
type: "POST",
url: 'accion.php',
async: false,
data : { accion: "registrate" },
success: function(data) {
$("#contentregistro").html(data);
$("#btnregistrar").on("click", registrar);
},
error: function(objeto, quepaso, otroobj){

}
});
});

function registrar(){
console.log("ahora si");
}

Etiquetas: javascript
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 09:47.