Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/09/2011, 18:18
Avatar de zerokilled
zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Agregar evento dinámicamente

buenas,
no te recomiendo utilizar setAttribute para asignar un evento a un elemento. principalmente porque hay navegadores que no admiten el agregado de esa forma, por ejemplo iexplorer -aunque desconozco si enlas últimas versiones funciona. lo más adecuado sería que utilices DOM Level 0 o DOM Level 2. el primero simplemente consiste en tratar el evento como una propiedad del elemento. es decir, element.onclick es el evento onclick. solo tienes que asignarle una función.
Código:
element.onclick = fn; 
// si la funcion no requiere parámetros;

element.onclick = funciton(){fn(/*parameters*/);}; 
// si la función requiere parámetros, se crea una función anónima y dentro se invoca la función;
la segunda forma es con la función que mencionas. attachEvent, pero dicha función es el modelo que utiliza iexplorer, el cual no es estandar. la versión estandar es addEventListener.
Código:
if(self.addEventListener) element.addEventListener('click', fn, false);
else element.attachEvent('onclick', fn);
// de forma similar al anterior, puedes crear una función anónima si la función original requiere parámetros;
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.