| La
vinculación de eventos no es mas que asignar una función
escrita en javascript a un evento concreto, de manera que cuando
se dispare éste la función entre en funcionamiento.
Estas funciones se definirán en alguna parte de la página
o en un archivo ligado a ella. La vinculación de eventos
puede realizarse en línea dentro del código HTML
de la página, asignando al nombre del evento una cadena
con el nombre de la función, como en el ejemplo:
<img src="bola.gif" onmouseover = "ctrlEv()">
En el ejemplo ctrlEv( ) es la función que reaccionará cuando
el ratón pase sobre la imagen, o sea, cuando se produzca
el evento onmouseover sobre la imagen. La función
puede llevar argumentos definidos por nosotros, existiendo
un argumento especial que señala al objeto sobre el
que se produce el evento, se trata del objeto this. Si usamos
este parámetro al llamar a la función ésta
lo trata como el elemento donde se ha disparado el evento.
Otra forma de vincular funciones controladoras es mediante
código Javascript. En este caso lo que hacemos es
tratar el evento como una propiedad del objeto HTML y asignarle
directamente una instancia de la función
document.images[0].onmouseover=new Function("ctrlEv(
)")
o asignándole un puntero a la función
document.images[0].onmouseover = ctrlEv;
En el segundo caso asignamos una instancia de la función,
si le pasamos el argumento this la función lo tomaría
como el objeto que dispara el evento. En el tercer caso sin
embargo lo que asignamos al evento es un puntero a la función,
o sea, la direción de memoria donde se aloja la función,
sin parámetros. En este caso el puntero this se asigna
automáticamente y dentro del cuerpo de la función
this equivale al objeto que dispara el evento sin necesidad
de argumentos.
Si se desea evitar que se ejecute el controlador por defecto
de un evento pueden seguirse dos métodos:
Asignar false a la propiedad event.returnValue dentro de
la rutina manejador adel evento,
Incluir en la asignación la sentencia return false,
esta sentencia irá tras el nombre de la función
vinculada.
Este último sistema es compatible con Netscape y por
tanto recomendable. Por ejemplo en un enlace el controlador
por defecto del evento click es llevar el navegador a la
dirección indicada en el argumento href, pero podemos
evitar esto:
<
a href="destino.htm" onclick="alert('Mensaje
de aviso'); return false">
Pulsa aquí
<
/a>
Al pulsar sobre el enlace no irá a la página
destino.htm sino que abrirá una ventana de aviso.
Esto puede ser útil si, en lugar de la ventana de
aviso, usamos una función que, por ejemplo, de un
valor al enlace dependiente de la hora del día o del
usuario
|