Foros del Web » Programando para Internet » Javascript »

Adjudicar evento con eval

Estas en el tema de Adjudicar evento con eval en el foro de Javascript en Foros del Web. Hola a todos, Estoy intentando adjudicar a un elemento un evento al clicar con el raton. Actualmente cuando he querido hacerlo he usado addEvent(mielemento,'click',mifunciononclick); addEvent ...
  #1 (permalink)  
Antiguo 26/01/2011, 13:14
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Adjudicar evento con eval

Hola a todos,

Estoy intentando adjudicar a un elemento un evento al clicar con el raton. Actualmente cuando he querido hacerlo he usado addEvent(mielemento,'click',mifunciononclick); addEvent es la tipica funcion para añadir eventos a un evento. Mi problema es que ahora necesito hacerlo adjudicando esto:
Código Javascript:
Ver original
  1. eval('alert("hola");');

¿Como lo debo hacer?... por mucho que intento no me sale.
  #2 (permalink)  
Antiguo 26/01/2011, 14:37
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Adjudicar evento con eval

¿Por qué usar eval()?
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 26/01/2011, 15:46
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Respuesta: Adjudicar evento con eval

Hola,

Se usar eval()... el problema es que no se como adjudicar el eval("alert('hola')") al evento de un objeto del modo en que he explicado que lo hago.

creo que se hace con function(){}... pero no se como usarlo.

¿Sabeis?
  #4 (permalink)  
Antiguo 26/01/2011, 15:54
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Adjudicar evento con eval

¿Te refieres a esto?
Código Javascript:
Ver original
  1. addEvent(mielemento,'click',function(){
  2.  alert('hola');
  3. });
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #5 (permalink)  
Antiguo 26/01/2011, 17:08
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Respuesta: Adjudicar evento con eval

Hola,

Me ha funcionado de lujo el codigo que me has dado. El problema, que no habia pensado, es que al usar eval sobre una cadena introducida en una variable... esta sale undefined al clicar sobre el objeto.

Me explico:
Código Javascript:
Ver original
  1. a='alert("soy espinete")';
  2. addEvent(mielemento,'click',function(e){eval(a); });

¿Como podria hacer que la variable "a" guarde el contenido de 'alert("soy espinete")'?... existe alguna manera de hacerlo?... la verdad es que parece chungo... y sencillo si se sabe... :P
  #6 (permalink)  
Antiguo 28/01/2011, 13:42
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Adjudicar evento con eval

Es decir que tú quieres que a guarde 'soy espinete', ¿no? Podrías hacer una función como esta:
Código Javascript:
Ver original
  1. function alerta(txt){ alert(txt); return txt; }
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #7 (permalink)  
Antiguo 29/01/2011, 18:38
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Respuesta: Adjudicar evento con eval

Hola _cronos2,

No... no quiero que guarde "soy espinete", lo que quiero hacer es que guarde: 'alert("soy espinete")' en el evento de un objeto. Esto que pregunta es para hacer un manejador de eventos para trozos de codigo guardados en un array.

Es decir...

Lo que busco es:

//esta cadena se ejecuta infinidad de veces... pero con distinto contenido en "a"... en un bucle:
a='alert("soy espinete")';
addEvent(mielemento,'click',function(e){eval(a); });

El problema que tengo es que al ejecutar el evento onclick en mielemento el evento da error... ya que "a" es undefined... ya que por lo que parece el evento guarda solo "eval(a);" y no "eval("alert('soy espinete')")".

Pongo un alert de ejemplo... pero podria ser cualquier otra funcion... ya que es para ejecutar trozos de codigo un poco largos.

¿Tendra solucion?... me parece un problema serio la verdad... :P.
  #8 (permalink)  
Antiguo 29/01/2011, 19:06
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Adjudicar evento con eval

Prueba así:
Código Javascript:
Ver original
  1. var a = function(){ alert('a'); };
  2. addEvent(obj, 'click', a);
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #9 (permalink)  
Antiguo 29/01/2011, 19:21
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Respuesta: Adjudicar evento con eval

Bufff... _cronos2...

Como agradecerte la solucion?.... como?... que gusto... funciona de *utisima madre!... super!.

Perfecto!

Es que ademas... queda mas guapo que el eval...

Hasta pronto!.
  #10 (permalink)  
Antiguo 29/01/2011, 19:22
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Respuesta: Adjudicar evento con eval

¿Como que hasta pronto?... un abrazo!
  #11 (permalink)  
Antiguo 29/01/2011, 19:37
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Adjudicar evento con eval

Me alegra saber que te he sido de ayuda (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red

Etiquetas: eval, eventos
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 19:18.