Manual de Jquery
Manual de Jquery
Introducción a jQuery
Para simplificar, podríamos decir que jQuery es un framework Javascript, pero quizás
muchos de los lectores se preguntarán qué es un framework. Pues es un producto que sirve
como base para la programación avanzada de aplicaciones, que aporta una serie de funciones
o códigos para realizar tareas habituales. Por decirlo de otra manera, framework son unas
librerías de código que contienen procesos o rutinas ya listos para usar. Los programadores
utilizan los frameworks para no tener que desarrollar ellos mismos las tareas más básicas,
puesto que en el propio framework ya hay implementaciones que están probadas, funcionan
y no se necesitan volver a programar.
EJEMPLOS EN JQUERY
Para empezar vamos a ver este ejemplo, donde tenemos dos botones y un texto. Al pulsar un
botón, cambiaremos el texto y al pulsar el otro pondremos otro texto distinto.
Como se puede ver, en los botones hay definidos un par de eventos onclick (uno en cada uno)
que ejecutan una instrucción Javascript cuando se hace clic sobre ellos. La instrucción está
en Javascript, pero hace uso de algunas herramientas disponibles en jQuery para trabajo con
los elementos de la página. En este caso, por explicarlo rápidamente, se hace una selección
del elemento DIV de la capa y luego se ejecuta un método sobre él para cambiar el contenido
HTML del elemento. Aquí puede ver el ejemplo en vivo:
https://desarrolloweb.com/articulos/ejemplos/jquery/demo0.html
Es importante reconocer los tipos de selectores usados en CSS.
Selector de identidad, Selector de clases y selector de etiquetas.
En el ejemplo anterior hacemos referencia al div con identificador “capa”, es decir, el div
esta identificado por el id. Por tanto a la hora de hacer referencia a ese div se hace con la
sintaxis utilizada en selector de identidad: (‘#capa’) y se le antepone el $ que es parte de la
sintaxis de jquery para hacer referencia a los elementos.
Segundo ejemplo:
En este segundo ejemplo tenemos este código HTML, con las dos capas.
De esta sencilla manera, hemos creado dos eventos en el DIV con id="capa". Además, hemos
definido el código de los eventos por medio de funciones, que se encargarán de mostrar o
ocultar la segunda capa con id="mensaje".
$("#mensaje").css("display", "block");
Esto nos selecciona la capa con id "mensaje" y con el método css() indicamos que queremos
cambiar el atributo "display" al valor "block" de ese elemento.
$("#mensaje").css("display", "none");
Esta otra línea muy similar, simplemente cambia el "display" a "none" para ocultar el
elemento.
Otra forma muy usada de ocultar o mostrar un div o cualquier otro elemento html es de la
siguiente manera:
$("#mensaje").hide();// Asi se oculta
$("#mensaje").show();// Asi se muestra
Ahora, en el mismo directorio donde has colocado el archivo js, coloca un archivo html con
el siguiente código.
<html>
<head>
<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script>
AQUI COLOCAS EL CODIGO JAVASCRIPT Y JQUERY QUE
VAYAS A UTILIZAR
</script>
</head>
<body>
<a href="http://www.desarrolloweb.com/">DesarrolloWeb.com</a>
</body>
</html>
Va cambiar dependiendo de la versión que descargues y la carpeta donde la hayas guardado
<script src="bootstrap/jquery-2.1.4.js"></script>
Con ese script ya hemos incluido todas las funciones de jQuery dentro de nuestra página.
Sólo tienes que prestar atención a que tanto el archivo .html de esta página, como el archivo
.js del framework estén en el mismo directorio. Y, como decía, que el archivo que incluimos
con la etiqueta SCRIPT sea el .js que nosotros hemos descargado.
3.- Ejecutar código cuando la página ha sido cargada
Se trata de detectar el momento en que la página está lista para recibir comandos Javascript
que hacen uso del DOM.
Cuando hacemos ciertas acciones complejas con Javascript tenemos que estar seguros que la
página haya terminado de cargar y esté lista para recibir comandos Javascript que utilicen la
estructura del documento con el objetivo de cambiar cosas, como crear elementos, quitarlos,
cambiar sus propiedades, etc. Si no esperamos a que la página esté lista para recibir
instrucciones corremos un alto riesgo de obtener errores de Javascript en la ejecución.
Sólo habría que hacerlo cuando el navegador ha recibido el código HTML completo y lo ha
procesado al renderizar la página. Para ello, jQuery incluye una manera de hacer acciones
justo cuando ya está lista la página, aunque haya elementos que no hayan sido cargados del
todo. Esto se hace con la siguiente sentencia.
$(document).ready(function(){
//código a ejecutar cuando el DOM está listo para recibir instrucciones.
});
Por dar una explicación a este código, digamos que con $(document) se obtiene una
referencia al documento (la página web) que se está cargando. Luego, con el método ready()
se define un evento, que se desata al quedar listo el documento para realizar acciones sobre
el DOM de la página.
Ahora que ya sabemos cómo y cuando debemos ejecutar las acciones de jQuery que alteren
la funcionalidad, contenidos o aspecto de la página, podemos insertar un poco de código para
demostrar el método de trabajo con jQuery.
Para este primer ejemplo vamos a crear un evento click en el enlace, para mostrar un mensaje
cuando se haga clic sobre el link. Para crear un evento click sobre un elemento tenemos que
invocar al método click sobre ese elemento y pasarle como parámetro una función con el
código que queremos que se ejecute cuando se hace clic.
$("a").click(function(evento){
//aquí el código que se debe ejecutar al hacer clic
});
Como vemos en el código anterior, con $("a") obtenemos una referencia al enlace. Bueno,
en realidad con ello estamos estamos seleccionando todas las etiquetas (a) (enlaces) del
documento. Luego, el método click() del sobre $("a") estamos definiendo un evento, que se
ejecutará cuando se haga clic sobre el enlace. Como se puede ver, al método click se le pasa
una función donde se debe poner el código Javascript que queremos que se ejecute cuando
se haga clic sobre el enlace.
Ahora veamos la definición del evento clic completa, colocada dentro del evento ready del
document, para que se asigne cuando la página está lista.
$(document).ready(function(){
$("a").click(function(evento){
alert("Has pulsado el enlace...nAhora serás enviado a DesarrolloWeb.com");
});
});
Por líneas, esto es una recapitulación de lo que hemos hecho:
$(document).ready(function(){
Esta línea sirve para hacer cosas cuando la página está lista para recibir instrucciones jQuery
que modifiquen el DOM.
$("a").click(function(evento){
Con esta línea estamos seleccionando todas las etiquetas A del documento y definiendo un
evento click sobre esos elementos.
Una vez que tenemos hecho nuestra primera página con jQuery, la puedes guardar y
ejecutarla en un navegador. Prueba hacer clic en el enlace y debería salirte la ventana de
alerta.Ya está hecho y funcionando tu primer script con jQuery!
Por si acaso quedaron dudas, dejamos aquí el código completo que deberías tener:
<html>
<head>
<title>Primer script con jQuery</title>
<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script>
$(document).ready(function(){
$("a").click(function(evento){
alert("Has pulsado el enlace...nAhora serás enviado a DesarrolloWeb.com");
});
});
</script>
</head>
<body>
</body>
En el caso que nos ocupa, queremos demostrar el uso de jQuery para alterar elementos de
una página web, añadiendo y quitando clases CSS. Esto es bien simple, porque en jQuery los
elementos tienen dos clases llamadas addClass() y removeClass(), que sirven justamente para
que el elemento que recibe el método se le aplique una clase CSS o se le elimine. Así que lo
que vamos a aprender, con respecto al artículo anterior Para complicarlo sólo un poco más,
vamos a añadir y quitar clases del elemento con respuesta a acciones del usuario, para
aprender también nuevos eventos de usuario.
En nuestro ejemplo vamos a tener dos elementos. Primero una capa DIV con un texto.
Después tendremos un enlace que estará fuera de la capa DIV. Al situar el usuario el ratón
sobre un enlace añadiremos una clase CSS a la capa DIV y al retirar el ratón del enlace
eliminaremos la class CSS que habíamos añadido antes. Si se desea, para aclarar el caso de
nuestro ejemplo, podemos ver el ejercicio en marcha en una página aparte.
1.- Crear la página con una capa, un enlace y la definición de una clase CSS
El primer paso sería construir una página con todos los elementos que queremos que formen
parte de este primer ejemplo: la capa DIV, el enlace y la definición de la class CSS.
Además, ahora también vamos a incluir el script de jQuery, que lo necesitaremos para
acceder a las funciones del framework Javascript.
<html>
<head>
<title>Añadir y quitar clases CSS a elementos</title>
<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<style type="text/css">
.clasecss{
background-color: #ff8800;
font-weight: bold;
}
</style>
</head>
<body>
<div id="capa">
Esta capa es independiente y voy a añadir y eliminar clases css sobre ella
</div>
<br>
<br>
<a href="http://www.desarrolloweb.com">Añadir y quitar clase en la capa de arriba</a>
</body>
</html>
2.- Recordar: añadir siempre los scripts jQuery cuando el documento está "ready"
Ahora vamos a empezar a meter el código Javascript, pero quiero comenzar por recordar a
los lectores que cualquier funcionalidad que queramos agregar a la página por medio de
jQuery, debe ser incluida cuando el documento está listo para recibir acciones que
modifiquen el DOM de la página.
$(document).ready(function(){
//aquí meteremos las instrucciones que modifiquen el DOM
});
3.- Añadir los eventos mouseover y mouseout para añadir y quitar una clase CSS
En este paso vamos a crear un par de eventos que asociaremos a los enlaces. Este par de
eventos serán lanzados cuando el usuario coloque el puntero del ratón sobre el enlace
(mouseover) y cuando el usuario retire el ratón del enlace (mouseout).
Por ejemplo, para definir un evento mouseover se tiene que llamar al método mouseover()
sobre el elemento que queremos asociar el evento. Además, al método mouseover() se le
envía por parámetro una función con el código que se quiere ejecutar como respuesta a ese
evento.
En el caso de añadir una clase tenemos que utilizar el método addClass(), que se tiene que
invocar sobre el elemento al que queremos añadirle la clase. A addClass() tenemos que
pasarle una cadena con el nombre de la clase CSS que queremos añadir.
$("a").mouseover(function(event){
$("#capa").addClass("clasecss");
});
De manera análoga, pero con el método mouseout(), definimos el evento para cuando el
usuario saca el puntero del ratón del enlace.
$("a").mouseout(function(event){
$("#capa").removeClass("clasecss");
});
<html>
<head>
<title>Añadir y quitar clases CSS a elementos</title>
<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<style type="text/css">
.clasecss{
background-color: #ff8800;
font-weight: bold;
}
</style>
<script>
$(document).ready(function(){
$("a").mouseover(function(event){
$("#capa").addClass("clasecss");
});
$("a").mouseout(function(event){
$("#capa").removeClass("clasecss");
});
});
</script>
</head>
<body>
<div id="capa">
Esta capa es independiente y voy a añadir y eliminar clases css sobre ella
</div>
<br>
<br>
<form>
Nombre: <input type="text" name="nombre">
<br>
<input type="checkbox" name="mayor_edad" value="1" id="mayoria_edad"> Soy mayor
de edad
<br>
<div id="formulariomayores" style="display: none;">
DatoS para mayores de edad: <input type="text" name="mayores_edad">
</div>
</form>
Como se podrá ver, es un formulario como otro cualquiera. Sólo que tiene una capa con
id="formulariomayores", que contiene los elementos del formulario que queremos mostrar u
ocultar al marcar o desmarcar el checkbox. Esa capa estará inicialmente oculta, y para ello
hemos colocado el atributo style="display: none;". Podemos fijarnos también en el checkbox
con id="mayoria_edad", que es el que va servir para marcar si se desea o no ver la parte final
del formulario.
Ahora hay que hacer cosas cuando se haga clic en el checkbox con id="mayoria_edad". Para
ello en deberíamos crear un código Javascript y jQuery como este:
$(document).ready(function(){
$("#mayoria_edad").click(function(){
//lo que se desee hacer al recibir un clic el checkbox
});
});
Como ya hemos comentado, estas líneas sirven para especificar eventos.
$(document).ready() se hace para lanzar instrucciones cuando el navegador está preparado
para recibirlas y $("#mayoria_edad").click() sirve para realizar acciones cuando se ha hecho
clic sobre el elemento con id "mayoria_edad", que es el checkbox del formulario. Ahora
tenemos que ver las instrucciones que debemos ejecutar como respuesta a ese evento.
if ($("#mayoria_edad").attr("checked")){
$("#formulariomayores").css("display", "block");
}else{
$("#formulariomayores").css("display", "none");
}
Básicamente lo que hacemos es comprobar el estado del atributo "checked" del elemento
"#mayoria_edad". Esto se hace con el método attr() indicando como parámetro el valor del
atributo HTML que queremos comprobar. Entonces, si estaba "checked", se tiene que mostrar
el elemento y si no estaba marcado el checkbox, habría que ocultarlo.
Espero que se haya entendido bien. Ahora dejo aquí el código completo de este ejemplo:
<html>
<head>
<title>Mostrar Ocultar</title>
<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script>
$(document).ready(function(){
$("#mayoria_edad").click(function(evento){
if ($("#mayoria_edad").attr("checked")){
$("#formulariomayores").css("display", "block");
}else{
$("#formulariomayores").css("display", "none");
}
});
});
</script>
</head>
<body>
<form>
Nombre: <input type="text" name="nombre">
<br>
<input type="checkbox" name="mayor_edad" value="1" id="mayoria_edad"> Soy mayor
de edad
<br>
<div id="formulariomayores" style="display: none;">
Datos para mayores de edad: <input type="text" name="mayores_edad">
</div>
</form>
</body>
</html>
Como hemos podido ver, vamos a tener una capa y un par de enlaces. Con jQuery haremos
que al pulsar los enlaces se oculte y se muestre la capa, con las funciones de la librería Effects.
Para comenzar, este es el código HTML del ejemplo, que comprende tanto la capa como los
enlaces.
<div id="capaefectos" style="background-color: #cc7700; color:fff; padding:10px;">
Esto es una capa que nos servirá para hacer efectos!
</div>
<p>
<a href="#" id="ocultar">Ocultar la capa</a> |
<a href="#" id="mostrar">Mostrar la capa</a>
</p>
Ahora viene la parte interesante, que es en la que asociamos eventos a estos dos enlaces y
codificamos las llamadas a las funciones de Effects, que harán que se muestre y oculte la
capa.
$(document).ready(function(){
$("#ocultar").click(function(event){
event.preventDefault();
$("#capaefectos").hide("slow");
});
$("#mostrar").click(function(event){
event.preventDefault();
$("#capaefectos").show(3000);
});
});
Como se puede ver, primero tenemos que definir el evento ready del objeto $(document),
para hacer cosas cuando el documento está preparado para recibir acciones.
Luego se define el evento click sobre cada uno de los dos enlaces. Para ello invoco el método
click sobre el enlace, que hemos seleccionado con jQuery a través del identificador de la
etiqueta A.
$("#ocultar").click(function(event){
Con esto estoy definiendo el evento clic sobre el elemento con id="ocultar".
Nota: leer el artículo anterior Pasos para utilizar jQuery en tu página web, en el que
hablábamos sobre eventos y otras generalidades de este framework Javascript. Podremos
encontrar explicaciones más detalladas sobre cómo definir eventos Javascript con jQuery.
Dentro de la función a ejecutar cuando se hace clic, se coloca la llamada a la función de los
efectos.
$("#capaefectos").hide("slow");
Esto hace que nuestra capa, a la que habíamos puesto el identificador (atributo id)
"capaefectos", se oculte. Pasamos el parámetro "slow" porque queremos que el efecto sea
lento.
$("#capaefectos").show(3000);
Esto hace que se muestre el elemento con id "capaefectos", y que el proceso de mostrarse
dure 3000 milisegundos.
No hay más complicaciones, así que si habéis entendido esto ya sabéis hacer efectos simples
pero atractivos con jQuery en vuestra página web. Ahora podréis ver el código completo de
este ejemplo creado por DesarrolloWeb.com para demostrar el uso de efectos.
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Efectos con jQuery</title>
<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script>
$(document).ready(function(){
$("#ocultar").click(function(event){
event.preventDefault();
$("#capaefectos").hide("slow");
});
$("#mostrar").click(function(event){
event.preventDefault();
$("#capaefectos").show(3000);
});
});
</script>
</head>
<body>
<p>
<a href="#" id="ocultar">Ocultar la capa</a> |
<a href="#" id="mostrar">Mostrar la capa</a>
</p>
</body>
</html>
Por último, pongo el enlace de nuevo al ejemplo en marcha.
$coche = $_POST['coche'];
$modelo = $_POST['modelo'];
$color = $_POST['color'];
echo "El coche es de la marca $coche, el modelo es un $modelo y su color es $color";