Ver Mensaje Individual
  #5 (permalink)  
Antiguo 17/03/2009, 10:05
paloto
 
Fecha de Ingreso: abril-2007
Mensajes: 114
Antigüedad: 17 años
Puntos: 2
Respuesta: Agregar eventos dinamicamente (attachEvent)

Sé que llega con algo de retraso pero me encontré con este tema y puede que a alguien le vaya bien. Para añadir una función con parámetros sería así:

Código javascript:
Ver original
  1. input.attachEvent("onDblClick", function(){from_input(_This,_parN)}, false);

Al menos esto a mi me funciona, sin embargo, creo que sólo funciona en Explorer por lo que te recomiendo hacer lo siguiente:

Código javascript:
Ver original
  1. if (elemento.addEventListener)
  2. {
  3. input.addEventListener("DblClick", function(){from_input(_This,_parN)}, false);
  4. }
  5. else
  6. {
  7. input.attachEvent("onDblClick", function(){from_input(_This,_parN)}, false);
  8. }

Ahora bien, has de tener cuidado pues el comportamiento no es exactamente igual en Firefox y en Explorer. De hecho, en explorer la función del evento se genera en el momento en que el evento es llamado, mientras que en el firefox la función del evento se genera cuando se añade al objeto pero no se ejecuta hasta que lo llama el evento. Es decir, en el ejemplo anterior, supongamos que la variable _This vale 1, entonces añadimos el evento al objeto, a continuación modificamos _This y le asignamos el valor 2 y por último realizamos la acción que ejecuta el evento. Si nos encontramos en Firefox el parámetro que le llegará a la función será 1 porque en el momento de añadir el evento ese era su valor, mientras que si estamos en explorer el parámetro que se le pasa será 2 porque es lo que vale en el momento en que se ejecuta la acción que llama al evento.

No sé si me he explicado con claridad así que si no es así avisadme que lo intento de nuevo :)

Un saludo