Foros del Web » Programando para Internet » Javascript »

Asignar funcion a evento por codigo

Estas en el tema de Asignar funcion a evento por codigo en el foro de Javascript en Foros del Web. ¡Saludos, camaradas programadores! Estoy haciendo una página dinámica con JavaSript y me encontré con el siguiente problema: estoy usando “document.createElement()” para crear elementos HTML desde ...
  #1 (permalink)  
Antiguo 05/03/2012, 14:30
Avatar de tomareggaetouna  
Fecha de Ingreso: julio-2011
Mensajes: 4
Antigüedad: 12 años, 8 meses
Puntos: 0
Pregunta Asignar funcion a evento por codigo

¡Saludos, camaradas programadores!

Estoy haciendo una página dinámica con JavaSript y me encontré con el siguiente problema: estoy usando “document.createElement()” para crear elementos HTML desde JS, hasta la parte de crear los elementos y colocarlos en la pagina todo bien, el problema que tengo es porque necesito que todos los input->text que creo ejecuten un evento cuando ganan el foco, el código en HTML seria
Código HTML:
<input type=”text” onfocus=”idactual(this)” /> 
y simplemente no tengo idea de cómo hacerlo o si al menos es posible

¿Alguno me puede ayudar con esto? La verdad que no tengo ganas de hacer “innerHTML” por una cuestión de… eh… profesionalismo, por así decir.

Y aprovecho ya que estoy para hacerles una preguntita ¿Qué es jQuery?, lo leí en otras páginas pero nunca investigue que es y ya que estamos se me ocurrió preguntarle a los que saben

Desde ya gracias a todos los lectores por su tiempo
  #2 (permalink)  
Antiguo 05/03/2012, 14:48
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 9 meses
Puntos: 1012
Respuesta: Asignar funcion a evento por codigo

para agregarle atributos se puede usar setAttribute(), pero no así para los eventos. en este caso hay que asignarlo así
Cita:
elementto.onfocus = function(){fnc(this);}
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 06/03/2012, 05:37
Avatar de tomareggaetouna  
Fecha de Ingreso: julio-2011
Mensajes: 4
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Asignar funcion a evento por codigo

Gracias por responder IsaBelM, tu respuesta me sirvió para entender algo que me quedo medio flotando en el aire, es muy útil, pero ahora tengo un problema parecido:

¿Y si quiero asignar una función que ya existe?

agamos de cuenta que tengo el siguiente codigo JS

Código:
function idactual(x)
 {id=x.id;
 }

function crear()
 {input=document.createElementById("input");
 input.type="text";
 input.onfocus=idactual(this); //la idea seria enviar por parametro el input en si
 }
¿Cómo hago que mi idea sea una verdad?

Gracias de antemano

PD: ¿Cómo funciona exactamente setProperty? porque en Google me encontré que sirve para las propiedades en CSS
  #4 (permalink)  
Antiguo 06/03/2012, 06:35
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 9 meses
Puntos: 1012
Respuesta: Asignar funcion a evento por codigo

  • createElementById no existe. en todo caso es createElement()
  • setProperty tampoco existe. buscando, he visto que es una función de jsp (java). nada que ver con javascript. si explicas que quieres hacer, ya veremos
edito: el método setProperty() si existe en javascript. es aceptado por todos los navegadores modernos. esto quiere decir que ie8- no lo acepta, por lo tanto por ahora es más conveniente usar setAttribute()

en cuanto al código, no puedes asignar la función tal y como lo haces ya que en ese caso es invocada al vuelo. la manera de hacerlo es
Cita:
input.onfocus=function() {idactual(this)};
por otro lado no creo que el evento onfocus sea el mas adecuado en este caso; yo usaría onclick. también te falta asignarle, al control, una id y ya por último usaría la función setAttribute() para establecer los atributos del control
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}

Última edición por IsaBelM; 08/03/2012 a las 06:09 Razón: restificación
  #5 (permalink)  
Antiguo 06/03/2012, 07:07
Avatar de tomareggaetouna  
Fecha de Ingreso: julio-2011
Mensajes: 4
Antigüedad: 12 años, 8 meses
Puntos: 0
De acuerdo Respuesta: Asignar funcion a evento por codigo

1. createElementById() lo invente yo XD, sabía perfectamente que era createElement(), me equivoque porque ahora mismo estoy programando

2. Es verdad, escribiste setAttribute(), yo fui el que leyó setProperty(), no me preguntes porque :P

3. El código

Código:
input.onfocus=function(){idactual(this)}
no funciono, tuve que usar el setAttribute() y ahora trabaja a las mil maravillas

4. Uso onfocus porque hice un segmente de código que permite moverse con "CTRL+FLECHA"

5. ¡¡GRACIAS POR TODO!! Me súper fuiste de ayuda, te debo un... un... ... ... ¿te debo algo? :P

Etiquetas: evento, funcion, html, input, js
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 01:44.