Por: Lunatic Lycanthrop + Otros tutoriales de Lunatic Lycanthrop + 8 de Marzo del 2007
jQuery es una liviana libreria de JavaScript, pensada para interactuar con los elementos de una web por medio del DOM. Lo que la hace tan especial es su sencillez y su reducido tamaño.
La sencillez de su sintaxis y la poca extension del codigo que necesitas escribir son las caracteristicas más notables. Si hicieras lo que hace jQuery con getElementById y window.onload no solo tendrias que escribir mucho, si no que podrian haber diversos problemas.
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Prueba de jQuery</title> <script src="jquery.js" type="text/javascript"></script> </head> <body> </body> </html>
Lo primero que hacemos es linkear el jQuery a nuestro documento. Facil, no?
jQuery tiene una sintaxis muy sencilla. Los comandos se reconocen por comenzar con el simbolo "$". Ahora, la forma de una sentencia es la siguiente:
$(elemento).evento(funcion-o-parametro);
La manera de inicializar jQuery es muy util:
$(document).ready(function(){ //Aqui tu codigo });
Ready es un método propio de jQuery, que revisa si el DOM está listo para usarse. Es más util que el window.onload, pues este debe esperar a que todos los elementos de la pagina esten cargados (como scripts e imagenes) paa ejecutar. El "ready", en cambio, espera solo a la estructura.
Acceder a los elementos de la página es sencillo pues se usa la misma nomenclatura que en CSS:
| Tipo de elemento | Modo de llamado |
|---|---|
| Etiqueta | Nombre de la etiqueta. Ejemplos: "a", "strong", "div" |
| Elemento con un Id | Id precedido por el signo "#". Ejemplos: "#principal","#texto" |
| Elemento con una clase (class) | Clase precedida por un punto (.). Ejemplos: ".codigo", ".titulo" |
$("* > a").click( function(){alert("nada");});
Los eventos que se pueden usar son los mismos que usariamos normalmente. El unico cambio es la supresión del "on" inicial: mouseover, click, focus, etc
Veamos un ejemplo de lo visto hasta ahora:
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Prueba de jQuery</title> <script src="jquery.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function (){ //Aqui asignamos el click al elemento <a> $("a").click(function (){ alert("Presionaste un <a>"); }); }); </script> </head> <body> <a href="#"> Presioname! </a> </body> </html>
Al presionar cualquier etiqueta "a" del documento, se ejecutaria el alert.
Cuando queremos que un elemento pueda interactuar con un css ya establecido, usamos las clases. Con jQuery, estas pueden ser asignadas dinamicamente:
$("a").addClass("boton");
O tambien removidas:
$("a").removeClass("boton");
Ahora, podemos añadirle CSS a esa determinada clase, y ver como se comporta:
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> Prueba de jQuery </title> <script src="jquery.js" type="text/javascript"> </script> <script type="text/javascript"> $(document).ready(function (){ //Aqui asignamos el click al elemento <a> $("a").click(function (){ alert("Presionaste un <a>"); //Aqui removemos la clase! $("a").removeClass("boton"); }); //Aqui añadimos la clase a los elementos <a> $("a").addClass("boton"); }); </script> <style type="text/css"> .boton{ color:#f00; display:block; width:100px; text-align:center; border:#f00 solid 1px; } </style> </head> <body> <a href="#" class="algo">Presioname!</a> </body> </html>
Al ejecutarse el script, todos los "a", tomarán la clase "boton", que tiene propiedades de CSS. Sin embargo, al oprimir el elemento, la clase es removida.
Esta librería también esta compuesta por algunos efectos, que resultan muy útiles. Son livianos y faciles de llamar. A continuación, una breve descripcion de cuales son, que hacen y como se usan:
| Nombre del efecto | Descripcion | Descripcion de los parámetros |
|---|---|---|
| Show (Mostrar) | Modifica los atributos alto, ancho y transparencia, partiendo de 0.$(objeto).show("velocidad") |
Velocidad: Determina el tiempo en el que se realizará el efecto. Puede ser "slow" (lento), "normal", o "fast" (rápido). |
| Hide (Ocultar) | Modifica los atributos alto, ancho y transparencia, partiendo de los valores actuales
hasta llegar a 0.$(objeto).hide("velocidad") |
|
| Slide Down (Aparecer hacia abajo) | Modifica los atributos alto y transparencia, partiendo de 0. Es similar a "show", salvo
que no modifica el ancho, creando un efecto de "cortinilla". $(objeto).slideDown("velocidad") |
|
| Slide Up (Aparecer hacia arriba) | Modifica los atributos alto y transparencia, partiendo de los actuales, hasta llegar
a 0. Es similar a "show", salvo que no modifica el ancho, creando un efecto de "cortinilla". $(objeto).slideUp("velocidad") |
|
| Fade In(Aparecer) | Modifica el atributo transparencia desde 0.$(objeto).fadeIn("velocidad") |
|
| Fade Out(Desaparecer) | Modifica el atributo transparencia desde el valor actual, hasta llegar a 0.$(objeto).fadeOut("velocidad") |
|
| Center (Centrar) | Centra un elemento con respecto a su "parent".$(objeto).center("velocidad"); |
|
| Fade To(Cambiar transparencia) | Modifica el atributo transparencia a un valor especifico.$(objeto).fadeTo("velocidad", transparencia) |
Velocidad: Determina el tiempo en el que se realizará el efecto. Puede ser "slow"
(lento), "normal", o "fast" (rápido). Transparencia: Un numero de 0 a 100 que indica que tan visible es el elemento. |
| Animate (Animar) | Modifica un atributo especifico.$(objeto).animate("propiedades","velocidad"); |
Velocidad: Determina el tiempo en el que se realizará el efecto. Puede ser "slow"
(lento), "normal", o "fast" (rápido). Propiedades: Una o más propiedades con valor numérico en CSS, por ejemplo width y height. La llamada seria: $(objeto).animate({width:20,height:200}, "slow"); |
Despues de un evento se pueden llamar otras funciones JavaScript y jQuery, de la forma tradicional:
funcion();
Hay eventos que permiten, acabada su ejecución, llamar funciones. Los efectos, por ejemplo, permiten un parámetro opcional, el de "callback". De modo que la sintaxis para un efecto con callback, sería (por ejemplo) la siguiente:
$(objeto).show("velocidad", funcion);
Como no se pueden usar parentesis en un callback, el modo de pasar los parametros seria el siguiente:
$(objeto).show("slow", function(){ lafuncion("parametro1","parametro2"); });
Este tutorial es a modo de introduccion. Depende de ti explorar jQuery para explotar todas sus funcionalidades. Para conocer más a fondo esta librería, puedes visitar los siguientes vinculos:
Ejemplo del tutorial
Archivos del tutorial
Si tienes alguna pregunta de este tutorial; puedes hacerla aqui en los foros