Diferencia entre revisiones de «Usuario:Juanda/javascript/Eventos»
De WikiEducator
(→Introducción) |
|||
| Línea 38: | Línea 38: | ||
</pre> | </pre> | ||
</div> | </div> | ||
| + | |||
<div class="slide"> | <div class="slide"> | ||
| + | *Eventos de formularios | ||
| + | <pre> | ||
| + | onFocus Un elemento coge el foco | ||
| + | onBlur Un elemento pierde el foco | ||
| + | onChange Un elemento cambia | ||
| + | onSubmit Para validar los campos de un formulario antes de enviarlos | ||
| + | ... | ||
| + | </pre> | ||
| + | </div> | ||
| − | === | + | |
| + | <div class="slide"> | ||
| + | === Manejadores de eventos=== | ||
| + | JavaScript permite asignar una función a cada uno de los eventos. De esta forma, cuando se produce cualquier evento, JavaScript ejecuta su función asociada. Este tipo de funciones se denominan "event handlers" en inglés y suelen traducirse por "manejadores de eventos": | ||
<source lang="html4strict"> | <source lang="html4strict"> | ||
| − | + | function muestraMensaje() { | |
| − | + | alert('Gracias por pinchar'); | |
| − | + | } | |
| − | + | <input type="button" value="Pinchame y verás" onclick="muestraMensaje()" /> | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
</html> | </html> | ||
</source> | </source> | ||
</div> | </div> | ||
| + | |||
<div class="slide"> | <div class="slide"> | ||
===Captura de errores=== | ===Captura de errores=== | ||
| Línea 136: | Línea 131: | ||
</source> | </source> | ||
| + | <div class="slide"> | ||
| + | === Uso de la variable this=== | ||
| + | Modificamos los bordes del elemento al pasar el ratón por encima: | ||
| + | <source lang="html4strict"> | ||
| + | <div id="contenidos" style="width:150px; height:60px; border:thin solid silver"> | ||
| + | Sección de contenidos... | ||
</div> | </div> | ||
| + | </source> | ||
| + | |||
| + | Uso de '''this''' para referirse al elemento o etiqueta html que ha provocado el evento: | ||
| + | <source lang="html4strict"> | ||
| + | <div id="contenidos" style="width:150px; height:60px; border:thin solid silver" onmouseover="document.getElementById('contenidos').style.borderColor='black';" onmouseout="document.getElementById('contenidos').style.borderColor='silver';"> | ||
| + | Sección de contenidos... | ||
| + | </div> | ||
| + | </source> | ||
| + | </div> | ||
| + | |||
| + | <div class="slide"> | ||
| + | *Ejemplo de uso de la variable this | ||
| + | :Al llamar a una función, debemos pasar this como parámetro.<br> | ||
| + | :Varios case responden igual debido a las diferentes respuestas de los navegadores. | ||
| + | <source lang="html4strict"> | ||
| + | function resalta(elemento) { | ||
| + | switch(elemento.style.borderColor) { | ||
| + | case 'silver': | ||
| + | case 'silver silver silver silver': | ||
| + | case '#c0c0c0': | ||
| + | elemento.style.borderColor = 'black'; | ||
| + | break; | ||
| + | case 'black': | ||
| + | case 'black black black black': | ||
| + | case '#000000': | ||
| + | elemento.style.borderColor = 'silver'; | ||
| + | break; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | <div style="width:150px; height:60px; border:thin solid silver" onmouseover="resalta(this)" onmouseout="resalta(this)"> | ||
| + | Sección de contenidos... | ||
| + | </div> | ||
| + | </source> | ||
| + | |||
| + | </div> | ||
| + | |||
| + | |||
| + | |||
| + | <div class="slide"> | ||
| + | ===Separación de html y javascript=== | ||
| + | Al igual que se intentan separar los contenidos (código html) y el diseño (css), se recomienda separar los contenidos, de su comportamiento (JavaScript).<br> | ||
| + | Ejemplo: | ||
| + | <source lang="html4strict"> | ||
| + | <input id="pinchable" type="button" value="Pinchame y verás" onclick="alert('Gracias por pinchar');" /> | ||
| + | </source> | ||
| + | Se puede transformar en: | ||
| + | <source lang="javascript"> | ||
| + | // Función externa | ||
| + | function muestraMensaje() { | ||
| + | alert('Gracias por pinchar'); | ||
| + | } | ||
| + | // Asignar la función externa al elemento, sin parentesis!!!!! | ||
| + | // se ejecuta una vez que esté cargado todo el DOM (evento onload) | ||
| + | //Si se añaden los paréntesis después del nombre de la función, en realidad se está //ejecutando la función y guardando el valor devuelto por la función en la propiedad //onclick de elemento. | ||
| + | window.onload = function() { | ||
| + | document.getElementById("pinchable").onclick = muestraMensaje; | ||
| + | } | ||
| + | // Elemento XHTML | ||
| + | <input id="pinchable" type="button" value="Pinchame y verás" /> | ||
| + | </div> | ||
| + | </source> | ||
| + | |||
</div> | </div> | ||
Revisión de 21:58 30 sep 2012