Agregar eventos a los elementos
Existen varias formas de asignar eventos a los elementos de un documento HTML, una de las más utilizadas es invocar con javascript al elemento en cuestión y asignarle una función de usuario a alguno de sus eventos, por ejemplo:
document.getElementById"myElement").onfocus=myFunction;
Lea el resto del artículo haciendo clic aquí
Pero de esta forma se está excluyendo cualquier otra función de usuario que, por ejemplo, se haya asignado en la etiqueta HTML.
La forma adecuada es utilizar los métodos que provee el DOM , a fin de agregar funcionalidades adicionales a cada evento, sin excluir las que se agregaran en otros lugares del documento. Claro que esto no es sencillo ya que Internet Explorer difiere en la forma de hacerlo con respecto al resto de los navegadores.
Aquí acerco un código que les podría facilitar las cosas:
function addEvent(obj,evType,fn){ var r = false; if (obj.addEventListener){ obj.addEventListener(evType, fn, false); r = true; } else if (obj.attachEvent) { var id = obj.sourceIndex ¦¦ -1; if (!fn[evType + id]) { var f = fn[evType + id] = function(e) { var o = document.all[id] ¦¦ document; o._f = fn; var s = o._f(e); o._f = null; return s; }; r = obj.attachEvent("on" + evType, f); obj = null; } } return r; }; function removeEvent(obj, evType, fn){ var r = false if (obj.removeEventListener){ obj.removeEventListener(evType, fn, false); r = true; } else if (obj.detachEvent) { r = obj.detachEvent("on" + evType, fn[evType + (obj.sourceIndex -1)]); } return r; };
En las funciones los parámetros son
- obj objeto del DOM que registrará el evento
- evType tipo de evento a controlar (se lo pasa como un string sin el on delante)
- fn función o código del usuario que se debe ejecutar al producirse el evento. Esta función recibirá como primer parámetro el objeto event.
addEvent(window, 'load', myFunction) removeEvent(window, 'load', myFunction)
0 Comentarios:
Mandar un comentario