Intro… o parecido

Este tutorial ya tiene algo de tiempo rondando por Internet, especificamente en Cristalab. No lo había publicado en mi blog por que… bueno, la verdad no se por que XD. Pero la idea es basicamente aprender lo basico de jQuery.

¿Que es jQuery?

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.

¿Por que debería usarlo?

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.

¿Como empiezo a usarlo?

Lo primero que debes hacer, es descargarlo de la web oficial: jQuery . Una vez descargada la libreria (son más o menos 16k) puedes
proceder a tu primer script:


<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?

Ejecución y sintaxis básica

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.

Acceso a elementos y eventos

Acceder a los elementos de la página es sencillo pues se usa la misma nomenclatura que en
CSS. Con estos metodos, seleccionaremos diferentes
elementos de la pagina, con los cuales interactuaremos:

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”
Nota: Tambien funcionan muchos de los selectores de CSS como “>”, “*”, etc. Un ejemplo de
su uso seria:

$("* > a").click( function(){
alert("nada");
});

Los eventos responden a una interacción del usuario con la pagina o de la misma pagina de manera interna:
Por ejemplo, cuando el usuario hace click o se termina de ejecutar una funcion.

Los eventos que se pueden usar en jQuery son los mismos que usariamos normalmente en JavaScript. El unico cambio es la
supresión del “on” inicial: mouseover, click, focus, etc

Veamos todo junto

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.

Añadir o retirar clases

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.

Efectos especiales

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:

Organizemos los efectos de esta manera:

  • Nombre del efecto
  • Descripcion
  • Modo de llamado
  • 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”)
  • Velocidad: Determina el tiempo en el que se realizará el efecto. Puede ser “slow”
    (lento), “normal”, o “fast” (rápido).
  • 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”)
  • Velocidad: Determina el tiempo en el que se realizará el efecto. Puede ser “slow”
    (lento), “normal”, o “fast” (rápido).
  • 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”)
  • Velocidad: Determina el tiempo en el que se realizará el efecto. Puede ser “slow”
    (lento), “normal”, o “fast” (rápido).
  • Fade In(Aparecer)
  • Modifica el atributo transparencia desde 0.
  • $(objeto).fadeIn(”velocidad”)
  • Velocidad: Determina el tiempo en el que se realizará el efecto. Puede ser “slow”
    (lento), “normal”, o “fast” (rápido).
  • Fade Out(Desaparecer)
  • Modifica el atributo transparencia desde el valor actual, hasta llegar a 0
  • $(objeto).fadeOut(”velocidad”)
  • Velocidad: Determina el tiempo en el que se realizará el efecto. Puede ser “slow”
    (lento), “normal”, o “fast” (rápido).
  • 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");

  • Center (Centrar)
  • Centra un elemento con respecto a su “parent”
  • $(objeto).center(”velocidad”);
  • Velocidad: Determina el tiempo en el que se realizará el efecto. Puede ser “slow”
    (lento), “normal”, o “fast” (rápido).

“Callbacks”, llamar funciones y pasar parametros

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);

Nota: La funcion debe colocarse sin los parentesis y sin comillas

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");
});

Conclusiones

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: