Foros del Web » Programando para Internet » Javascript »

Agregar evento dinámicamente

Estas en el tema de Agregar evento dinámicamente en el foro de Javascript en Foros del Web. Hola a todos, tengo este código: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original < script >         var are = document. createElement ...
  #1 (permalink)  
Antiguo 26/09/2011, 12:39
 
Fecha de Ingreso: febrero-2009
Mensajes: 202
Antigüedad: 15 años, 2 meses
Puntos: 3
Agregar evento dinámicamente

Hola a todos,
tengo este código:

Código Javascript:
Ver original
  1. <script>
  2.        var are = document.createElement("area");
  3.     are.setAttribute('shape',"rect");
  4.     are.setAttribute('coords',partes[parte]['coords']);
  5.     are.setAttribute('href',"#"+parte);
  6.     document.getElementById('mymap').appendChild(are);
  7. </script>

Y me queda perfectamente <area shape="rect" coords="coords" href="href">, pero necesito que quede así:
<area shape="rect" coords="coords" href="href" onclick="funcion(p1,p2)" />

O sea agregar un evento y la barra... Estuve leyendo sobre attachevent pero no me funcionó en firefox al menos...

EDITO: Disculpen, ya pude resolver lo del evento, dejo el code:
Código HTML:
Ver original
  1. are.setAttribute("onclick","cargar("+i+",'"+parte+"')");
Me faltaría lo de la barra...

Gracias!

Última edición por Ozone; 26/09/2011 a las 12:48
  #2 (permalink)  
Antiguo 26/09/2011, 18:18
Avatar de 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.
  #3 (permalink)  
Antiguo 28/09/2011, 18:36
 
Fecha de Ingreso: febrero-2009
Mensajes: 202
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: Agregar evento dinámicamente

Ahhh, okk, estaba pensando en usar innerhtml, sino y mezclar html con variables... serviría también??

Etiquetas: evento, funcion
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 03:00.