Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Se pierde funcion con ajax

Estas en el tema de Se pierde funcion con ajax en el foro de Jquery en Foros del Web. Hola amigos, cuando asigno una función a un botón mediante JQUERY asignandola a través de una clase, al recargar un elemento con ajax el cual ...
  #1 (permalink)  
Antiguo 03/03/2016, 09:51
 
Fecha de Ingreso: diciembre-2015
Ubicación: México
Mensajes: 280
Antigüedad: 8 años, 4 meses
Puntos: 20
Se pierde funcion con ajax

Hola amigos,
cuando asigno una función a un botón mediante JQUERY asignandola a través de una clase, al recargar un elemento con ajax el cual tendrá la misma clase, ya no ejecuta la acción, a que se debe? como podría solucionarlo?

Mi boton:

Código HTML:
Ver original
  1. <button class="mibtn">Alta</button>

Código Javascript:
Ver original
  1. $(".mibtn").on('click', function(e) {  
  2.     $(btn).button('loading');
  3.     $.ajax({
  4.         url      : 'miphp.php',
  5.         type  : 'POST',
  6.         dataType : 'json',
  7.         data : {opcion : "alta" }
  8.     })
  9.     .done(function(data){
  10.         if(data.response=="success"){
  11.             $("#target").html('<button class="mibtn">Alta</button>');
  12.         );
  13.         }else{
  14.             alert(data.error);
  15.         }
  16.     })
  17.     .fail(function(data){
  18.         console.log("Fail");
  19.     })
  20.     .always(function(){
  21.         $(btn).button('reset');
  22.     });
  23.  
  24. });
Al crear el nuevo botón en el elemento #target, este ya no realiza la acción, como si no tuviera la clase 'mibtn'
Gracias de antemano
  #2 (permalink)  
Antiguo 03/03/2016, 10:05
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Se pierde funcion con ajax

Lo que ocurre es que, las instrucciones definidas, solo afectarán a los elementos que hayan cargado antes de que hayan sido ejecutadas. En otras palabras, solo se afecta a los elementos fijos, no a los creados de forma dinámica.

Para poder lograr afectar a estos últimos, tienes que delegar el evento, en este caso, el evento click a un elemento ancestro del elemento creado dinámicamente.

Código Javascript:
Ver original
  1. $("#target").on("click", ".mibtn", function(){
  2.     //Instrucciones en donde $(this) representará al botón pulsado
  3. });

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 03/03/2016, 10:17
 
Fecha de Ingreso: diciembre-2015
Ubicación: México
Mensajes: 280
Antigüedad: 8 años, 4 meses
Puntos: 20
Respuesta: Se pierde funcion con ajax

Hola amigo,
Gracias por la respuesta!!!
Sin duda alguna me sirvio muchisimo, es lo que estaba buscando
Muchas gracias!
Saludos!

Etiquetas: ajax, funcion, pierde
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 16:55.