Diseño Web
Diseño Web
Diseño Web
Eventos
2 de 19
Índice
1. Introducción …………………………..…………………………………………..…………………………
………………5
4. Manejadores …………………………………………………………………………………………………
….…………13
5 de 18
2. Objeto event
Cada evento está representado por un objeto de tipo event que se basa en el
interfaz event del DOM. Estos objetos pueden disponer de propiedades y
funciones personalizadas. También las propiedades y métodos pueden variar
dependiendo del navegador utilizado, no todos los navegadores reconocen la
misma información. Veremos los conceptos más generales, y puede que sea
necesaria alguna adaptación para algún navegador en concreto.
2.1. Propiedades
Existen varios tipos de propiedades: asociadas a las teclas del teclado, a los
botones del ratón, al puntero del ratón, a las características del evento en sí, al
flujo del evento… Veamos alguna de las más interesantes.
6 de 18
2. Objeto event
Ejemplo:
<html>
<body onclick="coordenadas(event)">
<p> Ejemplo de propiedades de Objeto Evento.</p>
<p> ****************************************</p>
<p> Pincha con el ratón sobre la ventana para ver las coordenadas</p>
<script>
function coordenadas(p) {
var x = p.clientX;
var y = p.clientY;
alert("Has pulsado el ratón en la posición: " + x + ", " +
y);
}
</script>
</body>
</html>
2.2. Métodos
Ejemplo:
<html>
<body>
<script>
function simula(event) {
var x = document.createEvent("MouseEvent");
x.initMouseEvent("mouseover");
document.getElementById("linea").dispatchEvent(x);
}
</script>
<p>Ejemplo de método del objeto event</p>
7 de 18
2. Objeto event
</html>
8 de 18
3. Tipos de eventos
Para cada elemento XHTML hay varios eventos que se le pueden asignar. Un
mismo tipo de evento puede aparecer asociado a varios elementos distintos.
Sintaxis:
De forma general podemos decir que el nombre de los eventos se compone del
prefijo ‘on’ seguido por el nombre de la acción (en inglés). Así por ejemplo hacer
click con el ratón, sería el evento onclick.
Uno de los elementos más habituales de interacción del usuario con una web es el
ratón, por tanto, conocer y manejar los eventos del mismo nos puede ayudar a
mejorar el dinamismo de nuestra página. Veamos los eventos principales:
Ejemplo:
Se escribe ‘Hola Mundo” al pulsar el botón. No tiene por qué ser con el ratón,
puede utilizarse el tabulador y enter.
<html>
<body>
<p>Ejemplo de evento onclick</p>
<button onclick="saludo()">Pulsar</button>
<script>
function saludo() {
document.getElementById("demo").innerHTML = "Hola Mundo!!";
9 de 18
3. Tipos de eventos
}
</script>
<p id="demo"></p>
</body>
</html>
Ejemplo:
<html>
<body>
<p> Ejemplo de eventos onMouseDown y onMouseUp<p>
<form name=ejemplo>
<input type='button' name='boton1' value=' el ratón no
está pulsado' onmouseup="botonLibre()"
onmousedown="botonPulsado()">
</form>
<script>
function botonLibre() {
document.ejemplo.boton1.value = " El ratón no está
pulsado"
}
function botonPulsado() {
document.ejemplo.boton1.value = " El ratón está
pulsado"
}
</script>
</body>
</html>
Ejemplo:
10 de 18
3. Tipos de eventos
<html>
<body>
<p>Ejemplo evento onkeypress</p>
<input type="text" onkeypress="pulsada()">
<script>
function pulsada() {
alert("Aviso: Tecla pulsada");
}
</script>
</body>
</html>
Ejemplo:
<html>
<body>
<p>Ejemplo onfocus</p>
Nombre: <input type="text" onfocus="resalta(this)">
<script>
function resalta(fondo) {
fondo.style.background = "blue";
}
</script>
</body>
</html>
11 de 18
3. Tipos de eventos
Ejemplo:
<html>
<body onload="carga()">
<p>Ejemplo onload</p>
<script>
function carga() {
alert("La página se ha cargado");
}
</script>
</body>
</html>
12 de 18
4. Manejadores
Ejemplo
<html>
<body>
<p>Ejemplo manejador como atributo</p>
<input id="p1" type="button" value="Saludo" onclick="alert('Hola
Mundo!')" />
</body>
</html>
Ejemplo:
<html>
<body>
<p>Ejemplo manejador como función externa</p>
<input type="button" value="Saludo" onclick="saludo()" />
<script>
function saludo() {
alert('Hola Mundo!');
13 de 18
4. Manejadores
}
</script>
</body>
</html>
Ejemplo:
<html>
<body>
<p>Ejemplo manejador semántico</p>
<input id="p1" type="button" value="Saludo" />
<script>
document.getElementById("p1").onclick = saludo;
function saludo() {
alert('Hola Mundo!');
}
</script>
</body>
</html>
4.4. This
Ejemplo:
<html>
<body>
14 de 18
4. Manejadores
</html>
15 de 18
5. Eventos personalizados
Además de los eventos básicos que hemos visto en el apartado cuatro, JS provee
la posibilidad de crear nuestros propios eventos personalizados.
Para crear nuestros eventos personalizados, primero tendremos que crear nuestro
objeto Event (ver apartado 2) de forma manual mediante el constructor.
elem.dispatchEvent(event);
En el ejemplo se crea un nuevo evento que cada vez que hace doble clic sobre
cualquier zona de la ventana se dispara y registra datos (en este punto podría
hacerse llamada a un servicio externo, en el ejemplo solamente se escribe en
consola).
<html>
<body>
// Disparar event.
window.ondblclick = function () {
elem.dispatchEvent(event);
}
</script>
</body>
</html>
16 de 18
6. Flujo de eventos
Ejemplo:
<html onclick="manejaEvento()">
</html>
17 de 18