Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] método creado en ready, no es invocado

Estas en el tema de método creado en ready, no es invocado en el foro de Jquery en Foros del Web. Buenas forer@s tengo un evento definido en el ready @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original $ ( document ) . ready ( function ( ...
  #1 (permalink)  
Antiguo 17/07/2013, 10:18
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 14 años, 2 meses
Puntos: 45
método creado en ready, no es invocado

Buenas forer@s

tengo un evento definido en el ready

Código Javascript:
Ver original
  1. $(document).ready(function (){
  2.   $('.cajas').keyup(function (){
  3.      alert("presionando tecla");
  4.   });
  5. });

hasta ahi bien, ahora tengo un boton (en el ready) que crea cajas de texto. ejemplo:

Código Javascript:
Ver original
  1. $("#boton").click(function (){
  2.     $("#divrespuesta").html('<input type="text" class="cajas" />');
  3.   });
  4.  
  5. el boton funciona bien, ahora como se dan cuenta la caja que cree mediante el boton tiene la clase "cajas" lo que yo quiero es que como ya se creo con esa clase se dispare en evento keyup definido anteriormente, pero no lo hace, [B]creo que es por que la caja no existia hasta que oprimí el botón[/B], no se si hay aguna forma de hacer eso.
  6.  
  7. lo que intento es hacer un "evento generico" para mis cajas de texto, espero haber sido claro, muchas gracias
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #2 (permalink)  
Antiguo 17/07/2013, 10:29
3nr1c
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: método creado en ready, no es invocado

Cita:
creo que es por que la caja no existia hasta que oprimí el botón
Tú lo has dicho. La manera que tienes para crear un evento genérico es asignando el evento a cada caja después de crearla:
Código Javascript:
Ver original
  1. $("#boton").click(function (){
  2.     $("#divrespuesta").html('<input type="text" class="cajas" />').keyup(function (){
  3.      alert("presionando tecla");
  4.   });
  5.   });

Un saludo
  #3 (permalink)  
Antiguo 17/07/2013, 10:33
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 14 años, 2 meses
Puntos: 45
Respuesta: método creado en ready, no es invocado

Hola 3nr1c

muchas gracias por la respuesta, pero eso es exactamente lo que quiero evitar, no quisiera estar escribiendo la misma linea de código todo el tiempo, es decir, escribir el keyup cada vez que creo una caja de texto... quisiera que fuera generico, cosa que cree una caja con esa clase y ya se comportara segun las acciones definidas en el evento
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #4 (permalink)  
Antiguo 17/07/2013, 11:47
3nr1c
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: método creado en ready, no es invocado

Puedes crear un pequeño plugin que te haga el trabajo...

Código Javascript:
Ver original
  1. $.fn.tecla = function(){
  2. this.keyup(function (){
  3.      alert("presionando tecla");
  4.   });
  5. }

Código Javascript:
Ver original
  1. $("#divrespuesta").html('<input type="text" class="cajas" />').tecla();
  #5 (permalink)  
Antiguo 17/07/2013, 13:22
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 14 años, 2 meses
Puntos: 45
Respuesta: método creado en ready, no es invocado

Interesante 3nr1c

ahora imagina esto:

hago un each de una respuesta json del server

Código Javascript:
Ver original
  1. var opciones = "";
  2. $.each(arreglo, function (i,v){
  3.   var opciones += '<tr><td><input type="text" class="cajas" /></td></tr>';
  4. });
  5. $("#divrespuesta").html(opciones);

bueno para mi caso no es .html() si no .append() a una tabla <table>

lo que me aconsejas funcionaria para este caso? el hecho es que creo muchas cajas de texto de forma dinamica y quisiera que todas tuvieran la misma acción.

Muchas gracias por las respuestas
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #6 (permalink)  
Antiguo 17/07/2013, 13:32
3nr1c
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: método creado en ready, no es invocado

creo que podría funcionar cambiándolo un poco:

Código Javascript:
Ver original
  1. //var opciones = "";
  2. $.each(arreglo, function (i,v){
  3.   //var opciones += '<tr><td><input type="text" class="cajas" /></td></tr>';
  4.   var input = $(document.createElement('input'));
  5.   $(input).attr({type:'text',class:'cajas'}).tecla();
  6.   $('#divrespuesta').append($(input));
  7. });
  8. //$("#divrespuesta").html(opciones);

Más o menos algo así, pruébalo y me dices.


Etiquetas: creado, ready
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 06:17.