Contenidos
Eventos
Las acciones que el usuario realiza o los cambios que efectúe en la página se conocen con el nombre de eventos
Un evento es la señal de que ‘algo‘ ha sucedido
Sintaxis de los eventos
Es necesario especificar un selector, para saber sobre qué elemento interactuará el evento, seguido del evento entre paréntesis
Vamos a usar el siguiente HTML de ejemplo, que contiene un sencillo formulario, para ir conociendo el uso de los eventos, acompañado de un fichero que llamaremos event.js
Para procesar el formulario también hemos añadido un fichero form.php, sin embargo, no lo vamos a utilizar con los ejemplos sobre eventos
Eventos de elemento
Este tipo de evento es el que normalmente usará el usuario para interactuar con los elementos del HTML, cuando pase el ratón sobre el elemento o sea pulsado, entre otros
Entre los más importantes destacamos:
- focus
se activa cuando el foco se dirige al elemento
- blur
se activa cuando cuando el foco se dirige a otro elemento o lo pierde
- click
se activa cuando se hace click sobre el elemento
- dblclick
se activa cuando se hace doble click sobre el elemento
En el ejemplo se ha seleccionado el elemento con el id button y responde al evento click que tiene como parámetro la variable warning
Podría haberse incluido el código dentro del evento click, pero se ha querido recalcar que los parámetros pueden ser una variable que contiene una función, así podemos tener distintas variables con distinto comportamiento, sin tener que modificar nuestro código
Eventos de ratón
Se producen cuando el usuario utiliza el ratón dentro del documento HTML o cualquier de los elementos que lo componen
Entre los más importantes destacamos:
- mousedown
se activa al pulsar un botón del ratón
- mouseup
se activa cuando se deja de pulsar un botón del ratón
- mousemove
se activa cuando se mueve el ratón
- mouseover
se activa cuando se mueve el ratón sobre un elemento (cuando entramos en el elemento)
- mouseout
se activa cuando el ratón abandona el elemento (cuando salimos del elemento)
En el ejemplo se han añadido un par de eventos más que cambian el tipo de letra cuando se pasa el ratón sobre el elemento con id button
Es posible asignar a estos eventos parámetros que contienen información sobre el evento del ratón
Entre los más importantes destacamos:
- screenX y screenY
representan las coordenadas del puntero del ratón con respecto a las coordenadas globales de la pantalla
- clientX y clientY
representan las coordenadas del puntero del ratón con respecto a la ventana del navegador
- button
es el número de botón que ha sido pulsado (izquierdo = 0, central = 1, derecho = 2)
Si no queremos pasarlo como parámetro, podemos usar la propiedad buttons, que incluye más botones, como la rueda del ratón o los botones de adelante y atrás del navegador
En el ejemplo se ha modificado la variable warning para que detecte qué botón ha sido pulsado y qué posición tenía el ratón en la pantalla, cuando ha sido pulsado
Eventos de teclado
Se producen cuando el usuario utiliza el teclado
Entre los más importantes destacamos:
- keydown
se activa al pulsar una tecla
- keyup
se activa cuando se deja de pulsar una tecla
- keypress
se activa cuando se pulsa y se deja de pulsar una tecla
Es posible asignar a estos eventos parámetros que contienen información sobre el evento del teclado
Entre los más importantes destacamos:
- char o charCode
es una cadena con el carácter que ha sido pulsado (siempre que el mismo sea representable)
- key o keyCode
es un identificador que representa la tecla que ha sido pulsada
Puedes consultar la lista completa en la página para desarrolladores de Mozilla
- ctrlKey, shitKey y altKey
son campos que indican si las teclas Control, Shift o Alt habian sido pulsadas cuando se produjo el evento de teclado
En el ejemplo se ha añadido la variable key con parámetros para capturar las teclas pulsadas al escribir en el elemento con el id login y se ha modificado el conjunto de llamadas para utilizarlo, usando el evento keypress
Eventos de toque
Estos eventos se producen al tocar una pantalla tactil
Son similares a los producidos por un ratón, pero su retardo es mucho menor
A causa de ello, pueden producirse conflictos con los eventos del ratón, por eso es recomendable deshabilitarlos, para no ejecutar eventos similares dos veces
Entre los más importantes destacamos:
- touchstart
se activa cuando el dedo toca la superficie de la pantalla
- touchend
se activa cuando el dedo deja de pulsar la superficie de la pantalla
- touchmove
se activa cuando el dedo se desliza por la superficie de la pantalla
- touchenter
se activa cuando el dedo se mueve sobre un elemento (cuando entramos en el elemento)
- touchleave
se activa cuando el dedo abandona el elemento (cuando salimos del elemento)
- touchcancel
se activa cuando el dedo se sale fuera de los límites de la ventana del navegador
Eventos de formulario
Los formularios tienen sus propios eventos, entre los más importantes destacamos:
- click
se activa cuando hacemos click con el ratón sobre un elemento
Normalmente suele usarse con los botones (button, submit) - change
se activa cuando el usuario modifica el valor de un elemento de texto
Normalmente suele usarse con los input de tipo texto, los textarea o las listas desplegables al seleccionar una opción
- focus
se activa cuando el usuario selecciona un elemento del formulario
- blur
se activa cuando el usuario pasa a otro elemento del formulario
- submit
se activa cuando el usuario realiza la acción de enviar el formulario (no sólo cuando se pulsa el botón de submit, ya que puede simularse al pulsar un button que hace las veces de submit o cuando se fuerza una llamada al evento desde otro evento)
Adicionalmente, el evento submit genera los eventos mousedown, click, mouseup y submit, en ese mismo orden, lo que nos permite realizar validaciones en los elementos del formulario antes de enviarlo definitivamente
- reset
se activa cuando el usuario realiza la acción de resetear el formulario (no sólo cuando se pulsa el botón de reset, ya que puede simularse al pulsar un button que hace las veces de reset o cuando se fuerza una llamada al evento desde otro evento)
En el ejemplo se han añadido las variables send (para validar los campos login y pass) y write (para validar que no se introduzca el símbolo @ en el campo pass); se ha modificado el conjunto de llamadas para utilizarlos, usando los eventos submit y change