jquery-apuntes

33
El framework de JavaScript

Upload: marco-antonio-martinez-andrade

Post on 02-Dec-2015

202 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: JQuery-Apuntes

El framework de JavaScript

Page 2: JQuery-Apuntes

jQUERY 1

JQUERY ....................................................................................................................................... 3

INTRODUCCIÓN ..................................................................................................................................... 3

DOM ...................................................................................................................................................... 3

UTILIZAR jQUERY ................................................................................................................................... 4

PRINCIPIOS DE USO ............................................................................................................................... 5

CARGAR LA WEB .................................................................................................................................... 5 Práctica ............................................................................................................................................... 5

ACCESO A LOS ELEMENTOS DE LA WEB .................................................................................................. 6 Con JavaScript ..................................................................................................................................... 6 Con jQuery .......................................................................................................................................... 6

SELECTORES ........................................................................................................................................... 6 Selector de etiquetas. .............................................................................................................................. 6 Selector por identificador ........................................................................................................................ 7 Selector por clase CSS .............................................................................................................................. 7 Selectores de varios elementos ............................................................................................................... 7 Selectores posicionales ............................................................................................................................ 7 Selectores parent>child ........................................................................................................................... 7 Selectores de formulario ......................................................................................................................... 8 Selectores de jerarquía ............................................................................................................................ 8 TABLAS DE SELECTORES ........................................................................................................................... 9 OPERADORES ......................................................................................................................................... 10

Ejemplo ............................................................................................................................................. 10

EVENTOS .............................................................................................................................................. 10 Práctica ............................................................................................................................................. 11

TIPOS DE EVENTOS ................................................................................................................................ 11 EVENTOS RELACIONADOS CON EL RATÓN ........................................................................................ 12 EVENTOS RELACIONADOS CON EL TECLADO .................................................................................... 12 EVENTOS COMBINADOS TECLADO-RATÓN....................................................................................... 12 OTROS EVENTOS ............................................................................................................................... 13

DEFINIR/ELIMINAR EVENTOS: bind/unbind ........................................................................................... 14 BIND .................................................................................................................................................. 14 Ejemplo 1. Asignación de un evento a los elementos de una etiqueta ............................................ 14 Ejemplo 2. Asignación de una función a varios eventos a la vez ...................................................... 15 UNBING ............................................................................................................................................. 15

OTRAS UTILIDADES .............................................................................................................................. 15

MÉTODOS ............................................................................................................................................ 16 text() ...................................................................................................................................................... 16

Ejemplo ............................................................................................................................................. 16 attr()/removeAttr .................................................................................................................................. 16

Ejemplo 1 .......................................................................................................................................... 16 Ejemplo 2 ......................................................................................................................................... 17

addClass/removeClass ........................................................................................................................... 18 Ejemplo ............................................................................................................................................. 18

html() ..................................................................................................................................................... 19 Ejemplo ............................................................................................................................................. 19

css() ........................................................................................................................................................ 20

Page 3: JQuery-Apuntes

jQUERY 2

Ejemplos ............................................................................................................................................ 20 append / prepend .................................................................................................................................. 20

Ejemplos ............................................................................................................................................ 21

ITERADOR each .................................................................................................................................... 21 Ejemplo ............................................................................................................................................. 21

EFECTOS VISUALES ............................................................................................................................... 22 hide/show | slow/fast.......................................................................................................................... 22

Ejemplo ............................................................................................................................................. 22 fadeIn / fadeOut / fadeTo ...................................................................................................................... 23

Ejemplo ............................................................................................................................................. 24 Ejemplo ............................................................................................................................................. 24

Comprobar si un element es visible ...................................................................................................... 25 toggle() ................................................................................................................................................... 25

Ejemplo ............................................................................................................................................. 25 animate .................................................................................................................................................. 26

Ejemplo ............................................................................................................................................. 27

PRÁCTICA: MENÚ DESPLEGABLE .......................................................................................................... 27

ANEXO ...................................................................................................................................... 31

OPERACIONES HABITUALES ................................................................................................................. 31

FUENTES ................................................................................................................................. 32

Page 4: JQuery-Apuntes

jQUERY 3

jQUERY

INTRODUCCIÓN

jQuery es un framework1 de JavaScript que permite simplificar el manejo de los

documentos HTML, el árbol DOM, manejar eventos, desarrollar animaciones y agregar

interacción con Ajax a páginas Web.

JQuery es software libre y de código abierto creado por John Resig que además trabaja

para Mozilla Corporation.

La primera versión de jQuery estable apareció en el año 2006 y la última, de febrero de

2011, es la versión 1.5.1. Esta última versión se caracteriza por la utilización de Ajax.

El uso de jQuery librera al programador de tener que implementar los métodos

JavaScript que el framework contiene. Entre otras facilidades, jQuery tiene

implementados todos sus métodos para detectar el browser del usuario y adaptar las

funciones a cada uno de ellos.

La librería jQuery en resumen nos aporta las siguientes ventajas:

Ahorra muchas líneas de código.

Hace transparente el soporte de nuestra aplicación para los navegadores

principales.

Provee de un mecanismo para la captura de eventos.

Provee un conjunto de funciones para animar el contenido de la página en

forma muy sencilla.

Integra funcionalidades para trabajar con AJAX.

DOM

Acorde al W3C el Document Object Model o DOM es una interfaz de programación

de aplicaciones (API) para documentos validos HTML y bien construidos XML. Define

la estructura lógica de los documentos y el modo en que se accede y manipula.

El DOM permite un acceso a la estructura de una página HTML o XHTML mediante el

mapeo de los elementos de esta página en un árbol de nodos. Cada elemento se

convierte en un nodo y cada porción de texto en un nodo de texto.

La siguiente página

<!DOCTYPE HTML> <head>

<title>Esta es mi Web</title> </head> <body>

<p>Esta es mi primera <strong>Web</strong></p>

1 Un framework son librerías de código que contienen métodos ya listos para utilizar

Page 5: JQuery-Apuntes

jQUERY 4

</body>

</html>

Se corresponde con el siguiente árbol de nodos generado automáticamente por DOM

Otro ejemplo gráfico

UTILIZAR jQUERY

Para utilizar la librería debemos descargarla del sitio oficial (http://jquery.com/) e

introducir en cada página que lo requiera utilizar la siguiente línea en el bloque <head>:

<script src=" jquery-1.5.1.min.js"></script>

Del sitio oficial de jQuery descargaremos la versión descomprimida que ocupa

alrededor de 84 Kb (es el archivo jquery-1.5.1.min.js).

Documento

HTML

head

meta title

body

p

“Esta es mi Web” “Esta es mi

primera”

strong

“Web”

Page 6: JQuery-Apuntes

jQUERY 5

PRINCIPIOS DE USO

La forma de interactuar con la página es mediante la función $(), un alias de jQuery que

recibe como parámetro una expresión CSS o el nombre de una etiqueta HTML y

devuelve todos los elementos que concuerdan con la expresión.

// Devuelve el elemento con id="cabecera" $("#cabecera")

// Devolverá una matriz de elementos con class="destacado" $(".destacado")

Una vez obtenidos los elementos, se les puede aplicar cualquiera de las funciones que

facilita la biblioteca.

// Se elimina el estilo (removeClass()) y se aplica uno nuevo (addClass()) a todos los nodos con class=" destacado " $(". destacado ").removeClass("destacado ").addClass("nodestacado");

CARGAR LA WEB

Una de las funciones más utilizadas en las aplicaciones JavaScript es la siguiente

window.onload = function() {,,,}

La orden anterior hace que function() se ejecute una vez que la página se haya cargado

por completo. jQuery dispone de una función equivalente

$(document).ready(function(){…})

La gran ventaja de la función de jQuery, es que la página se puede manipular en cuanto

se ha cargado su código HTML (y por tanto, se ha construido el árbol DOM de la

página) mientras que la función de JavaScript espera a que se carguen todos los

elementos de la página, incluyendo todas las imágenes. De esta forma, las aplicaciones

realizadas con jQuery pueden responder de forma mucho más rápida que las

aplicaciones JavaScript tradicionales.

Práctica

Se mostrará una ventana de bienvenida al cargar la página

Fichero HTML

<!DOCTYPE HTML>

<html> <head> <meta charset=utf-8">

<title>Ejemplo 1</title> <script src="js/jquery-1.5.1.min.js"></script>

<script src=" js/fichero.js" ></script> </head> <body>

<h1> Comenzando.....</h1> </body>

</html>

Page 7: JQuery-Apuntes

jQUERY 6

Fichero JavaScript

$(document).ready(function(){

alert("Bienvenid@ a mi página"); });

ACCESO A LOS ELEMENTOS DE LA WEB

Por otra parte, la función getElementById() es posiblemente la más utilizada al

desarrollar aplicaciones web, ya que permite seleccionar un elemento a partir de su

atributo “id”. Además, existen otras dos funciones relacionadas:

getElementsByTagName() y getElementsByName(). jQuery incluye la función $()

como una alternativa más rápida y completa para seleccionar cualquier elemento de la

página:

Con JavaScript

// Seleccionar un elemento document.getElementById("miParrafo");

// Seleccionar todos los enlaces document.getElementsByTagName("a");

// Seleccionar todo lo anterior ----

// Seleccionar mediante la clase CSS ----

Con jQuery

// Seleccionar un elemento $("#miParrafo");

// Seleccionar todos los enlaces $("a");

// Seleccionar todo lo anterior $("#miParrafo, a")

// Seleccionar mediante la clase CSS $(".miClase")

SELECTORES

jQuery utiliza selectores para identificar aquellos elementos sobre los que se quiere

actuar. Un selector es una cadena de caracteres que identifica a uno o varios elementos

de una página Web.

Los selectores básicos utilizados en jQuery son:

Selector de etiquetas.

$(“h2”)

//selecciona todos los elementos que tienen etiqueta <h2>…..</h2>

Selector por etiqueta/contenido.

Page 8: JQuery-Apuntes

jQUERY 7

$(“p:contains(„Hola‟)”)

//selecciona los párrafos (<p>…</p>) que contengan la palabra “Hola”

Selector por etiqueta/propiedad.

$("div:visible")

//selecciona los div que tengan la propiedad visible=true

Selector por etiqueta/clase.

$("li.nombreClase")

//selecciona los li que tengan asignada la clase CSS nombreClase

Selector por identificador

$(“# misComentarios”)

//selecciona todos los elementos que tienen el atributo id=misComentarios

Selector por clase CSS

$(.miClase)

//selecciona todos los elementos que tienen como atributo class=”miClase”

Selectores de varios elementos

$(“p, a”)

//Selecciona todos los <a> y todos los <p>

Selectores posicionales

Los selectores posicionales stán basados en las relaciones posicionales entre elementos

según la estructura DOM del documento.

Selecciona el primer elemento <p> de la página

$(“p:first”)

Selecciona el primer <img> de la página que tiene un atributo src acabado

en .png

$(“img[src$=.png]:first)

Selecciona todos los párrafos que implementen la clase CSS miClase:

$(“p[@miClase]”)

Selecciona todos los divs que contengan algún párrafo dentro:

$(“div[p]”)

Selecciona todos los párrafos que tengan al menos un enlace:

$("p[a]")

Selecciona todos los radio buttons que han sido chequeados

$("input[@type=radio][@checked]")

Selectores parent>child

Los selectores parent>child permite que se pueda puedan acceder a los elementos que

sean hijos directos de otros.

Page 9: JQuery-Apuntes

jQUERY 8

//selecciona todas las etiquetas b que son hijas directas de los párrafos $("p > b")

//selecciona todas las etiquetas que son hijas directas del elemento con id="capa" $("#capa > *")

Selectores de formulario

Los selectores de formulario permiten seleccionar elementos de formulario de forma

específica.

Selecciona todos los elementos <input> con un tipo de atributo igual al

nombre del selector.

$(“:text”)

//selecciona todos los input que tengan tipo texto $(“:checkbox”)

//selecciona todos los input que tengan tipo checkbox

Selecciona todos los elementos input

$(“:input”)

Selecciona todos los elementos button

$(“:button”)

Selecciona todos los elementos activados del formulario:

$(“:enabled”)

Selecciona todos los radio buttons y checkbox del formulario que están

pulsados

$(":checked")

Selecciona todos los radio button que estén chequeados

$(":radio :checked")

Selectores de jerarquía

Selector de descendientes: selecciona elementos que desciendan de otro

elemento (CSS 1)

jquery("div.entrada h2")

Selector de hijos: selecciona elementos que sean hijos directos de otro

elemento (CSS 2)

jquery("div.entrada > h2")

Pseudo clase hijo: selecciona el enésimo hijo de un elemento (CSS 3)

jquery("tr:nth-child(1)")

Pseudo clase primer hijo: selecciona el primero hijo de un elemento (CSS 2)

jquery("tr:first-child")

Pseudo clase último hijo: selecciona el último hijo de un elemento (CSS 3)

jquery("tr:last-child")

Pseudo clase hijo único: selecciona los elementos que sean hijos únicos de

otros elementos (CSS 3)

jquery("div:only-child")

Page 10: JQuery-Apuntes

jQUERY 9

Pseudo clase primero: selecciona el primer elemento de un grupo de

elementos. Equivale a eq(0) (jQuery)

jquery("td:first)")

Pseudo clase último: selecciona el último elemento de un grupo de

elementos (jQuery)

jquery("td:last)")

Pseudo clase mayor que: selecciona todos los elementos con un índice

mayor que el indicado en un grupo de elementos (jQuery)

jquery("td:gt(0)")

Pseudo clase menor que: selecciona todos los elementos con un índice

menor que el indicado en un grupo de elementos (jQuery)

jquery("td:lt(3)")

Pseudo clase par: selecciona los elementos pares de un grupo de elementos

(jQuery)

jquery("td:even")

Pseudo clase impar: selecciona los elementos impares de un grupo de

elementos (jQuery)

jquery("td:odd")

Selector de hermanos: selecciona todos los hermanos que se encuentren

precedidos de otro elemento (CSS 3)

jquery("div.entrada ~ p")

Selector de próximo adyacente: similar al anterior, pero sólo selecciona el

adyacente directo (CSS 2)

jquery("div.entrada + p")

Pseudo clase padre: selecciona los padres de otros elementos (jQuery)

jquery("h2:parent")

Pseudo clase vacío: selecciona los elementos que no tengan ningún hijo,

incluyendo texto plano (CSS 3)

jquery(":empty")

TABLAS DE SELECTORES

Cuando una función jQuery devuelve varios elementos, lo hace en formato de tabla,

donde cada elemento está identificado por una posición de la misma. Entonces

mediante: eq(indice) podemos obtener el elemento de la lista a la que se hace referencia

de la posición índice+1, teniendo en cuenta que las lista en jQuery empiezan contar

desde 0.

Por ejemplo, en la siguiente instrucción almacena una referencia al tercer enlace que

implementa la clase “enlaceAmigos”.

enlace = $('a.enlaceAmigos:eq(2)')

A continuación se muestra como acceder al párrafo número 3 (segunda posición)

miParrafo=$(“p:eq(2)”)

Page 11: JQuery-Apuntes

jQUERY 10

OPERADORES

Se pueden utilizar los operadores ^= , $= y *=.

^= para obtener los elementos de una página HTML que contengan un atributo

que empiece por un valor determinado.

$= para obtener los elementos de una página HTML que acabe por un valor

determinado.

*= para obtener los elementos de una página HTML que contenga un valor

determinado.

Ejemplo

$(document).ready(function() {

//hace referencia a los enlaces que empiezan por mailto: $('a[href^="mailto:"]').addClass('mailto');

//hace referencia a los enlaces que hagan referencia a un fichero pdf $('a[href$=".pdf"]').addClass('enlacePdf');

//hace referencia a un enlace a sitio.com $('a[href*= "sitio.com"]').addClass('sitio'); });

Estas clases CSS deben estar previamente definidas en la página, por ejemplo:

.mailto { color: blue; }

.enlacePdf { color:green; }

.sitio { color: yellow; }

De esta forma, los enlaces de tipo malito aparecerán en azul, los enlaces a ficheros pdf

verdes y los enlaces a “sitio.com” aparecerán en amarillo.

http://parasitovirtual.wordpress.com/2010/12/06/curso-jquery-capitulo-6-selectores-

basicos-de-filtro/ Curso jQuery. Capítulo 6: Selectores básicos de filtro. &laquo; El

rincón de un parásito virtual

http://www.emenia.es/curso-de-jquery-2-selectores-primera-parte/ Curso de jQuery:

Selectores

http://www.desarrolloweb.com/articulos/ejemplo-selectores-jquery.html Ejemplo para

practicar con selectores en jQUERY

EVENTOS

Los eventos son los elementos fundamentales de la interacción del usuario con una

Web. Es fundamental que el programador maneje con soltura la gestión de eventos ya

que ello es lo que va a permitir dar funcionalidad a la Web.

Un evento se provoca cuando el usuario o el sistema realiza alguna acción sobre la

página Web, esto puede ser: cargar la página, pulsar con el teclado sobre un elemento,

pulsar una tecla, etc.

Page 12: JQuery-Apuntes

jQUERY 11

Cuando se provoca un evento, este se puede manejar con un controlador de evento que

ejecute unas determinadas acciones. Los controladores de eventos serán funciones

JavaScript enlazadas al evento correspondiente.

Para determinar que un evento debe ser capturado se utiliza la siguiente sintaxis

jQuery.

$(elemento).evento(function(event){…})

//event es una variable que representa al evento que se ha producido.

Práctica

En el siguiente formulario HTML, al cargar la página se define un evento clic para el

botón con id “elBoton” y el controlador de evento correspondiente que muestra una

ventana con el nombre introducido en el campo con id=”elCampo” o un mensaje de

aviso.

<!DOCTYPE html>

<html> <head>

<meta charset=utf-8"> <title>Ejemplo 2</title> <script src="js/jquery-1.5.1.min.js" ></script>

<script src="js/fichero.js" ></script> </head>

<body> <h1>Ejemplo de Formulario Web</h1> <form >

Nombre <input name="nombre" id="elNombre"

placeholder="Escribe tu nombre" autofocus></p> Fecha<input name="fecha" type="date"> <input type="button" id="elBoton" value="Para pulsar">

</form> </body>

</html>

Fichero fichero.js (JavaScript)

$(document).ready(function(){

$("#elBoton").click(function(event){ //cuando se produce el evento click

var selectorEscrito = $("#elNombre").attr("value"); if (selectorEscrito==""){ alert("Escribe tu nombre")

}else{ alert("tu nombre es " + selectorEscrito);

} }); });

TIPOS DE EVENTOS

jQuery dispone de tantas funciones como eventos estándar de JavaScript. El nombre de

cada función es el mismo que el del evento, sin el habitual prefijo

“on”: focus(), blur(), keyup(),mouseover(), mouseup(), resize(), submit(), etc.

Page 13: JQuery-Apuntes

jQUERY 12

EVENTOS RELACIONADOS CON EL RATÓN

click() Detecta el evento clic cuando se produce en un elemento de la

página.

dblclick() Detecta un evento cuando se produce un doble clic sobre un

elemento.

hover() Esta función en realidad sirve para manejar dos eventos, cuando el

ratón entra y sale de encima de un elemento. Por tanto se debe enviar dos

funcioness en vez de una.

mousedown() Detecta un evento cuando el usuario hace clic en el momento

que presiona el botón e independientemente de si lo suelta o no. Sirve tanto

para el botón derecho como el izquierdo del ratón.

mouseup() Detecta un evento cuando el usuario ha hecho clic y luego suelta

un botón del ratón. El evento mouseup se produce sólo en el momento de

soltar el botón.

mouseenter() Detecta el evento se produce al situar el ratón encima de un

elemento de la página.

mouseleave() Detecta un evento cuando el ratón sale de encima de un

elemento de la página.

mousemove() Detecta el evento que se produce al mover el ratón sobre un

elemento de la página.

mouseout() Detecta el evento que se desata cuando el usuario sale con el

ratón de la superficie de un elemento.

mouseover() Detecta el evento que se produce cuando el ratón está sobre un

elemento, pero tiene como particularidad que puede producirse varias veces

mientras se mueve el ratón sobre el elemento, sin necesidad de haber salido.

EVENTOS RELACIONADOS CON EL TECLADO

keydown() Detecta el evento que se produce en el momento que se presiona

una tecla del teclado, independientemente de si se libera la presión o se

mantiene. Se produce una única vez en el momento exacto de la presión.

keypress() Detecta el evento que ocurre cuando se digita un carácter, o se

presiona otro tipo de tecla. Es como el evento keypress de Javascript, por lo

que se entiende que keypress() se ejecuta una vez, como respuesta a una

pulsación e inmediata liberación de la tecla, o varias veces si se pulsa una

tecla y se mantiene pulsada.

keyup()Detecta el evento que se produce en el momento de liberar una

tecla, es decir, al dejar de presionar una tecla que teníamos pulsada.

Nota: a través del objeto evento, que reciben las funciones que indiquemos como

parámetro de estos métodos, podemos saber qué tecla se está pulsando, aparte de otras

muchas informaciones.

EVENTOS COMBINADOS TECLADO-RATÓN

blur() El evento blur se lanza sobre un elemento que acaba de perder el

foco. Normalmente este evento es aplicable a inputs de formularios.

Page 14: JQuery-Apuntes

jQUERY 13

focusin() Evento que se produce cuando el elemento gana el foco de la

aplicación, que puede producirse al hacer clic sobre un elemento o al

presionar el tabulador y situar el foco en ese elemento.

focusout() Ocurre cuando el elemento pierde el foco de la aplicación, que

puede ocurrir cuando el foco está en ese elemento y pulsamos el tabulador,

o nos movemos a otro elemento con el ratón.

focus() Sirve para definir acciones cuando se produce el evento focus de

Javascript, cuando el elemento gana el foco de la aplicación

OTROS EVENTOS

resize() Este evento es lanza cuando se cambia el tamaño de la ventana.

Este evento sólo se envía al objeto window.

scroll() Este evento se envía a los elementos que cambian su scroll ante una

acción del usuario. Se aplica a los objetos window, frames y elementos con

la propiedad overflow CSS puesta en estado “scroll”.

select() El evento select se lanza cuando el usuario selecciona un texto del

elemento sobre el que se gestiona el evento. Este evento sólo se aplica a los

textarea y a los input de tipo texto.

submit() Este evento se lanza cuando un usuario está tratando de enviar un

formulario. Este evento sólo es válido para formularios. Dependiendo del

navegador es posible enviar el formulario sin necesidad de pinchar en un

botón, simplemente pulsando la tecla ENTER. Cuando esto sucede el

evento no se lanza, por lo que tenemos que prestar especial atención a este

comportamiento para gestionarlo en su correspondiente evento

“keypressed”.

toggle() El evento toggle se utiliza para generar comportamientos de

cambio de estado generados al pinchar sobre un elemento. Por ejemplo,

puede interesarnos que al pinchar sobre un elemento se visualice y que al

volver a pinchar se oculte. Toggle nos permite hacer esto asociando dos o

más funciones al mismo evento que se van ejecutando de forma secuencial.

La primera vez que se pincha sobre el elemento (y todas las veces impares), se

ejecuta la primera función y la segunda vez que se pincha el elemento (y todas

las veces pares) se ejecuta la segunda función:

$(document).ready(function(){

$("p").toggle(function(){ alert("Me acabas de activar"); },function(){

alert("Me acabas de desactivar"); });

});

unload() El evento unload se lanza cuando un usuario navega fuera de la

página web o se dirige hacia otra parte de la web. Se ejecuta siempre,

incluso si el usuario cierra el navegador

Page 15: JQuery-Apuntes

jQUERY 14

DEFINIR/ELIMINAR EVENTOS: bind/unbind

BIND

El método bind() permite definir cualquier tipo de eventos y los enlaza con el

controlador de evento que el programador desee.

Su sintaxis es la siguiente:

bind (tipo_evento, controlador_evento)

tipo_evento: es el evento que se quiere enlazar con el objeto controlador_evento: se corresponde con la función que hará de controlador para el evento definido.

A la hora de aplicar bind se deben seguir los siguientes pasos en el fichero jQUERY:

1. Definir los controladores de eventos como funciones y asignar cada controlador

a una variable que posteriormente va a ser referenciada.

2. Aplicar el método bind y utilizar la variable creada en 1.

Al final el código jQUERY quedaría como sigue:

//1. Definir el controlador de evento var functionControlador=function(event){ if ($(this).css("color")=="#0000ff")

$(this).css("color", "#ffff00"); else $(this).css("color", "blue");

};

$(document).ready(function(){

//2. Utilizar bind para asignar eventos/controladores al element p $("p").bind("click mouseenter mouseleave", functionControlador); });

Ejemplo 1. Asignación de un evento a los elementos de una etiqueta

Página Web que muestra una ventana de alerta cuando se pulsa sobre alguno de los

párrafos de la misma (<p>)

Fichero HTML

<!DOCTYPE HTML>

<html> <head>

<meta charset=utf-8"> <script src="js/jquery-1.5.1.min.js" ></script> <script src="js/fichero3.js" ></script>

<title>Ejercicio3_Eventos1</title> </head>

<body> <h1>PRIMER TÍTULO</h1>

<p>Este es el primer párrafo</p> <h2>SEGUNDO TÍTULO</h2>

<p>Este es el segundo párrafo </p>

Page 16: JQuery-Apuntes

jQUERY 15

</body>

</html>

Fichero jQUERY: enlaza los párrafos <p> con el evento click y un controlador de

evento que muestra un mensaje de alerta cuando se produce el evento.

$(document).ready(function(){

$("p").bind("click", function(){ alert("Has hecho clic"); });

});

Ejemplo 2. Asignación de una función a varios eventos a la vez

Fichero jQUERY: enlaza los párrafos <p> con varios eventos (click, mouseenter,

mouseleave) y un controlador único para todos ellos que hace que el contenido de los

párrafos cambie de color al producirse el evento correspondiente.

var functionControlador=function(event){ if ($(this).css("color")=="#0000ff")

$(this).css("color", "#ffff00"); else $(this).css("color", "blue");

};

$(document).ready(function(){ $("p").bind("click mouseenter mouseleave", functionControlador); });

UNBING

Se puede utilizar unbind para eliminar un evento previamente asignado a uno o varios

elementos.

Para eliminar todos los eventos asociados a un elemento

$(“elemento”).unbind();

Para eliminar un evento asociado a un elemento

$(“elemento”).unbind(“evento”);

OTRAS UTILIDADES

jQuery incluye muchas otras funciones para facilitar el desarrollo de las aplicaciones

web, entre otras:

Oculta todos los elementos de un formulario

$(miFormulario.elements).hide();

Devuelve "true" si el navegador es alguna versión de Internet Explorer

$.browser.msie

Devuelve "true" si el navegador es alguna versión de Safari

$.browser.safari

Page 17: JQuery-Apuntes

jQUERY 16

Añade la clase CSS a todos los elementos o la quita si ya la tenían

establecida

$("p").toggleClass("seleccionado");

MÉTODOS

text()

Para saber el contenido de un elemento el objeto jQuery cuenta con un método llamado

text(), que se puede utilizar para

Modificar el contenido de un elemento

$(“#miElemento”).text (“párrafo Nuevo”)

Obtener el contenido de un elemento

var contenido=$(“#miElemento”).text()

Ejemplo

La siguiente función jQUERY cambia el texto del párrafo que está en primera posición

cuando se pulsa dobleclick en cualquier párrafo de la Web, además muestra el contenido

anterior del párrafo en una ventana.

$(document).ready(function(){ $("p").dblclick(function(){ var contenido=$("p:eq(1)").text()

alert(contenido); $("p:eq(1)").text("nuevo texto");

}) });

attr()/removeAttr

El método attr() permite agregar propiedades a un elemento HTML y recuperar el valor

de su propiedad.

Recuperar el valor de la propiedad

$(elemento).attr(nombre_propiedad)

Dar valor a una propiedad

$(elemento).attr(nombre de propiedad,valor)

Eliminar una propiedad

$(elemento).removeAttr(nombre de propiedad)

Ejemplo 1

Esta página Web cambia el atributo del título del enlace al hacer clic sobre el primer

párrafo.

Fichero html

<!DOCTYPE HTML> <html>

<head>

Page 18: JQuery-Apuntes

jQUERY 17

<meta charset="utf-8">

<script src="js/jquery-1.5.1.min.js" ></script> <script src="js/fichero4_color.js" ></script>

<title>Ejercicio3_Eventos1</title> </head>

<body> <h1>PRIMER TÍTULO</h1>

<p>Cambia el título</p> <h2>SEGUNDO TÍTULO</h2> <a href="http://www.google.com" title="Acceso a google"

id="miEnlace">Google</a></p> </body>

</html>

Fichero Jquery

$(document).ready(function(){ $("p").click(function(){

$("#miEnlace").attr("title","Pepe"); })

});

Ejemplo 2

La página Web contiene botones que modifican los atributos de borde de la tabla

Fichero html

<!DOCTYPE HTML> <html> <head>

<meta charset="utf-8"> <link rel="stylesheet" href="css/estilos3.css">

<script src="js/jquery-1.5.1.min.js" ></script> <script src="js/fichero4_attr.js" ></script>

<title>Ejercicio3_Eventos1</title> </head>

<body> <input type="button" id="boton1" value="Añadir propiedad

border"><br> <input type="button" id="boton2" value="Recuperar valor de la propiedad border"><br>

<input type="button" id="boton3" value="Eliminar la propiedad border">

<table id="tabla1"> <tr> <td>1111111111</td><td>1111111111</td><td>1111111111</td

><td>1111111111</td> </tr>

<tr> <td>2222222222</td><td>2222222222</td><td>2222222222</td><td>2222222222</td>

</tr>

Page 19: JQuery-Apuntes

jQUERY 18

<tr>

<td>3333333333</td><td>3333333333</td><td>3333333333</td><td>3333333333</td>

</tr> </table> </body>

</html>

Fichero Jquery

$(document).ready(inicializarEventos);

function inicializarEventos(){ $("#boton1").click(agregarPropiedadBorder);

$("#boton2").click(recuperarPropiedadBorder); $("#boton3").click(eliminarPropiedadBorder);}

function agregarPropiedadBorder(){ $("#tabla1").attr("border","1");}

function recuperarPropiedadBorder(){

var x=$("#tabla1"); if (x.attr("border")!=undefined)

alert(x.attr("border")); else alert("No está definida la propiedad border en la tabla");}

function eliminarPropiedadBorder(){

$("#tabla1").removeAttr("border");}

addClass/removeClass

Los métodos addClass y removeClass nos permiten asociar y desasociar una clase a un

elemento o conjunto de elementos HTML.

Añadir una clase CSS a un elemento.

$(elemento).addClass(“nombre_clase”)

Eliminar una clase CSS de un elemento

$(elemento).removeClass(“nombre_clase”)

Ejemplo

El siguiente ejemplo muestra dos botones que permiten enlazar y eliminar una clase

CSS de un elemento respectivamente.

Fichero HTML

<!DOCTYPE HTML> <html>

<head> <meta charset="utf-8"> <link rel="stylesheet" href="css/estilos1.css">

<script src="js/jquery-1.5.1.min.js" ></script> <script src="js/fichero4_addClass.js" ></script>

Page 20: JQuery-Apuntes

jQUERY 19

<title>Ejercicio4_addClass</title>

</head> <body>

<h1>Ejemplo de cambio de estilos</h1> <input type="button" id="elBotonA" value="Añdir clase"> <input type="button" id="elBotonE" value="Eliminar clase">

</body> </html>

Fichero JavaScript

$(document).ready(inicializarEventos); function inicializarEventos(){

$("#elBotonE").click(desasociarClase); $("#elBotonA").click(asociarClase);}

function asociarClase(){ var x=$("h1");

x.addClass("azul");}

function desasociarClase(){ var x=$("h1");

x.removeClass("azul");}

Fichero de estilos

.azul{ color: #0000cc;

html()

Es posible agregar bloques de código HTML a partir de un elemento de la página. esta

propiedad es básicamente = innerHTML del DOM.

Para agregar un bloque HMTL

$(elemento).html(bloque_HTML)

Para obtener el bloque HTML contenido a partir del elemento que hace

referencia el objeto jQuery.

$(elemento).html()

Ejemplo

Hay un botón para modificar el contenido del formulario y otro para ver su contenido

Fichero HTML

<!DOCTYPE HTML> <html> <head>

<meta charset="utf-8"> <link rel="stylesheet" href="css/estilos1.css">

<script src="js/jquery-1.5.1.min.js" ></script> <script src="js/fichero4_html.js" ></script> <title>Ejercicio4_html</title>

Page 21: JQuery-Apuntes

jQUERY 20

</head>

<body> <input type="button" id="boton1" value="Mostrar formulario">

<input type="button" id="boton2" value="Mostrar elementos html del formulario"><br> <div id="formulario">

</div> </body>

</html>

Fichero JavaScript

$(document).ready(inicializarEventos);

function inicializarEventos(){ $("#boton1").click(presionBoton1);

$("#boton2").click(presionBoton2);} function presionBoton1(){

var x; x=$("#formulario");

x.html("<form>Ingrese nombre:<input type='text' id='nombre'> <br>Introduzca clave:<input type='text' id='clave'> <br> <input

type='submit' value='confirmar'></form>"); } function presionBoton2(){

$("#formulario"). alert (x.html()); }

css()

jQuery también permite añadir nuevas propiedades CSS a los elementos de una forma

sencilla utilizando el método siguiente:

$(elemento).css (“propiedadCSS”, “valor”)

Ejemplos

//Añade un ancho a todas las etiquetas p $(“p”).css(“width”,”400px”)

//Asigna el color azul a los textos de id indicado $(“#miElemento”).css(“color”,”blue”)

//Añade un borde a todas las listas $(“ul”).css(“border”, “solid 1px “)

//Obtiene el valor de la propiedad "color" de CSS del los párrafos de la página $("p").css("color");

//Establece varias propiedades CSS de un elemento $("# miElemento ").css({ color: "red", background: "blue", font-weight: "bold" });

append / prepend

jQuery nos permite añadir contenido HTML al final de otro ya existente

Page 22: JQuery-Apuntes

jQUERY 21

$(elemento).append(contenidoHTML)

También podemos añadir contenido al principio

$(elemento).prepend(contenidoHTML)

Ejemplos

//Añadir un texto y unas etiquetas HTML al elemento con id=”miElemento”. $(“#miElemento”).append(“<p>Nuevo contenido de miElemento</p>”)

//Para añadir un elemento al final de la lista $("ul").append("<li>otro item al final</li>");

//Para añadir un elemento al principio de la lista $("ul").prepend("<li>otro item al principio</li>");

ITERADOR each

jQuery dispone de un método que nos permite asociar una función que se ejecutará por

cada elemento que contenga la lista de elemento.

Dentro de esta función podemos manipular el elemento actual.

La sintaxis del each es:

$(elementos).each(nombre de función)

Ejemplo

Resaltar con fondo amarillo todos los párrafos que tienen menos de 50 caracteres.

Fichero HTML

<!DOCTYPE HTML> <html>

<head> <meta charset="utf-8">

<link rel="stylesheet" href="css/estilos4.css"/> <script src="js/jquery-1.5.1.min.js" ></script> <script src="js/fichero5_each.js" ></script>

<title>Uso de each</title> </head>

<body> <div id="parrafos">

<p>La memoria es como el mal amigo; cuando más falta te hace, te falla.</p>

<p>Más rápido se coge al mentiroso que al cojo.</p> <p>Cuando los que mandan pierden la vergüenza, los que obedecen pierden el respeto.</p>

<p>En todas las tierras el sol sale al amanecer.</p> </div>

</body> </html>

Fichero JavaScript

$(document).ready(inicializarEventos);

Page 23: JQuery-Apuntes

jQUERY 22

function inicializarEventos(){ $("#parrafos p").each(resaltarParrafos);}

function resaltarParrafos(){ var x=$(this);

if (x.text().length<50) x.css("background-color","#ff0");}

EFECTOS VISUALES

Todas las aplicaciones web modernas incorporan pequeños efectos visuales

y animaciones que, si se utilizan de forma adecuada, mejoran la interacción con la

aplicación y su usabilidad. jQuery incluye de serie los efectos visuales más utilizados

por los diseñadores, pudiendo controlar mediante sus opciones la duración de cada

efecto.

hide/show | slow/fast

jQuery permite manejar los efectos visuales de un página Web utilizando, entre otros,

los métodos hide (ocultar) y show (mostrar). Estos métodos ya los hemos visto, pero en

este apartado vamos a ver cómo lograr ocultar y mostrar información a distintas

velocidades.

Muestra un elemento de forma normal (normal), rápìda (fast) o lenta (slow), también se

puede indicar los milisegundos de la acción. También es posible indicar una función

para que se ejecute al finalizar el efecto visual.

$(elemento).show([“fast”/”slow”/“normal”/milisegundos],[function])

Para que se muestre de forma instantánea se omite cualquier parámetro

Los parámetros funcionan de forma equivalente con hide (ocultar)

$(elemento).hide([“fast”/”slow”/“normal”/milisegundos],,[function])

Ejemplo

Este efecto lo vamos a ver con un ejemplo que muestra un recuadro con texto y

mediante el uso de dos botones podremos hacer que se oculte lentamente le cuadro o

que se muestra rápidamente.

Fichero HTML

<!DOCTYPE HTML> <html>

<head> <meta charset="utf-8"> <link rel="stylesheet" href="css/estilos4.css"/>

<script src="js/jquery-1.5.1.min.js" ></script> <script src="js/fichero4_show_hide.js" ></script>

<title>Mostar/Ocultar rápidamente/suavemente</title> </head>

<body>

Page 24: JQuery-Apuntes

jQUERY 23

<input type="button" id="boton1" value="Ocultar recuadro">

<input type="button" id="boton2" value="Mostrar recuadro"> <div id="descripcion" class="recuadro">

<p>HTML5 es una nueva e innovadora técnología para la craeción de páginas Web </p>

</div> </body>

</html>

Fichero JavaScript

$(document).ready(inicializarEventos);

function inicializarEventos(){ $("#boton1").click(ocultarRecuadro);

$("#boton2").click(mostrarRecuadro);} function ocultarRecuadro(){

$("#descripcion").hide("slow");}

function mostrarRecuadro(){ $("#descripcion").show("fast");}

Fichero CSS

.recuadro { background-color:#ffffcc; font-family:verdana;

font-size:14px;

border-top-width:1px; border-right-width:3px; border-bottom-width:3px;

border-left-width:1px;

border-top-style:dotted; border-right-style:solid; border-bottom-style:solid;

border-left-style:dotted;

border-top-color:#ffaa00; border-right-color:#ff0000; border-bottom-color:#ff0000;

border-left-color:#ffaa00; }

fadeIn / fadeOut / fadeTo

Estos métodos provocan también que un elemento se muestre (fadein) o se oculte

(fadeout) pero actúa sobre la transparencia de los objetos.

La sintaxis y los atributos son equivalentes a los métodos show/hide

$(elemento).fadeIn([“fast”/”slow”/“normal”/milisegundos],[function])

Page 25: JQuery-Apuntes

jQUERY 24

$(elemento).fadeOut([“fast”/”slow”/“normal”/milisegundos],[function])

Ejemplo

Con el mismo código HTML del ejemplo anterior pero utilizando el siguiente fichero

JavaScript conseguimos el efecto de ocultar y mostrar el cuadro actuando sobre la

opacidad del mismo.

$(document).ready(inicializarEventos);

function inicializarEventos(){

$("#boton1").click(ocultarRecuadro); $("#boton2").click(mostrarRecuadro);}

function ocultarRecuadro(){ $("#descripcion").fadeOut("slow");}

function mostrarRecuadro(){ $("#descripcion").fadeIn("fast");}

El método fadeTo puede modificar la opacidad de un elemento hasta un valor

determinado que se pasa por parámetro.

Podemos inicializar este método de las siguientes formas:

fadeTo([velocidad],[valor de opacidad])

Indicamos la velocidad de transición del estado actual al nuevo estado

(slow/normal/fast) o un valor indicado en milisegúndos.

El valor de la opacidad es un número real entre 0 (transparente) y 1(opaco)

También podemos llamar al método fadeTo con tres parámetros:

$(elemento).fadeTo([velocidad],[valor de opacidad],[función])

Esta segunda estructura de la función permite ejecutar una función cuando finaliza la

transición.

Hay que tener en cuenta que fadeTo por más que indiquemos el valor 0 en opacidad el

espacio que ocupa el elemento en la página seguirá ocupado por un recuadro vacío.

Ejemplo

Realizaremos un ejemplo que permitirá reducir y aumentar la opacidad de un cuadro por

medio de clic a dos botones-

Fichero HTML

<!DOCTYPE HTML> <html>

<head> <meta charset="utf-8">

<link rel="stylesheet" href="css/estilos4.css"/> <script src="js/jquery-1.5.1.min.js" ></script> <script src="js/fichero4_fadeTo.js" ></script>

<title>Mostar/Ocultar utilizando la opacidad</title> </head>

Page 26: JQuery-Apuntes

jQUERY 25

<body> <input type="button" id="boton1" value="Reducir opacidad">

<input type="button" id="boton2" value="Aumentar opacidado"> <div id="descripcion" class="recuadro"> <p>HTML5 es una nueva e innovadora técnología para la craeción

de páginas Web </p>

</div> </body> </html>

Fichero JavaScript

$(document).ready(inicializarEventos);

function inicializarEventos(){ $("#boton1").click(reducirOpacidad); $("#boton2").click(aumentarOpacidad);}

function reducirOpacidad(){

$("#descripcion").fadeTo("fast",0.5);}

function aumentarOpacidad(){ $("#descripcion").fadeTo("slow",1);}

Comprobar si un element es visible

A veces puede ser necesario saber si un elemento está visible o no y para ello podemos

utilizar el método is pasándole como parámetro la función hidden (oculto) o visible

(visible)

//devuelve true si está oculto $(elemento).is(“:hidden”)

//devuelve true si está visible $(elemento).is(“:visible”)

toggle()

Ya hemos visto el método toggle para alternar la ejecución de dos funciones, pero en

este apartado lo veremos para intercambiar la visibilidad de un elemento.

El método toggle permite ocultar un elemento si éste está visible y mostrarlo si está

oculto.

$(elemento).toggle([“fast”/”slow”/“normal”/milisegundos],[function])

Ejemplo

Veremos el funcionamiento de toogle en una página Web que presenta un botón que

muestra/oculta un cuadro, a la vez también cambia el texto del botón según el estado del

cuadro.

Fichero HTML

<!DOCTYPE HTML>

Page 27: JQuery-Apuntes

jQUERY 26

<html>

<head> <meta charset="utf-8">

<link rel="stylesheet" href="css/estilos4.css"/> <script src="js/jquery-1.5.1.min.js" ></script> <script src="js/fichero4_toggle.js" ></script>

<title>Mostar/Ocultar utilizando la opacidad</title> </head>

<body> <input type="button" id="boton1" value="Ocultar">

<div id="descripcion" class="recuadro"> <p>HTML5 es una nueva e innovadora técnología para la craeción

de páginas Web </p> </div>

</body> </html>

Fichero JavaScript

$(document).ready(inicializarEventos);

function inicializarEventos(){ $("#boton1").click(modificarVisibilidad);}

function modificarVisibilidad(){ $("#descripcion").toggle("slow",cambiarBoton);}

function cambiarBoton(){ if ($("#descripcion").is(":hidden") == true)

$("#boton1").attr("value","Mostrar"); else

$("#boton1").attr("value","Ocultar");}

animate

El método animate permite realizar animaciones personalizadas. Su sintaxis es la

siguiente:

$(elemento).animate({propiedades},[duracin],[f_animación],[callback])

Donde:

propiedades, es el único parámetro obligatorio y se utiliza para indicar que

atributos CSS se quieren actualizar con nuevos valores. JQuery sólo permite

el cambio de propiedades CSS que tengan valores numéricos. Por ejemplo

podríamos cambiar el tamaño de la letra pero no su fuente. La medida por

defecto es la de píxeles. Los nuevos valores se deben indicar de forma

absoluta o de forma relativa utilizando la notación “+=nº” p “+=nº”

duración, indica la duración de la animación en milisegundos o un valor

identificativo de la velocidad (normal, fast o slow).

Page 28: JQuery-Apuntes

jQUERY 27

función de animación, es una función que contiene las instrucciones que

indican cómo se realizará la animación, tiene dos posibles valores swing

(por defecto) y linear.

callback, este parámetro permite ejecutar una función cuando finaliza la

animación.

Ejemplo

Veremos el funcionamiento de animate en una página Web que presenta un botón que

realiza la animación de un cuadro de texto.

Fichero HTML

<!DOCTYPE HTML>

<html> <head> <meta charset="utf-8">

<link rel="stylesheet" href="css/estilos4.css"/> <script src="js/jquery-1.5.1.min.js" ></script>

<script src="js/fichero4_animate.js" ></script> <title>Uso de animate</title>

</head> <body>

<input type="button" id="boton1" value="Animar"> <div id="descripcion" class="recuadro" >

<p>HTML5 es una nueva e innovadora técnología para la creación de páginas Web </p>

</div> </body>

</html>

Fichero JavaScript

$(document).ready(inicializarEventos);

function inicializarEventos(){ $("#boton1").click(hacerAnimacion);}

function hacerAnimacion(){ $("#descripcion").animate({

'border-bottom-width': "20",'font-size': '25pt'});}

http://www.w3schools.com/jquery/jquery_effects.asp

PRÁCTICA: MENÚ DESPLEGABLE

Fichero HTML

<!DOCTYPE HTML> <html>

<head> <meta charset="utf-8">

Page 29: JQuery-Apuntes

jQUERY 28

<link rel="stylesheet" href="estilos_menuDesplegable.css"/>

<script src="../js/jquery-1.5.1.min.js" ></script> <script src="jquery_menuDesplegable.js" ></script>

<title>Uso de animate</title> </head>

<body> <div id="menu">

<ul> <li><a href="http://www.google.com.ar">Google</a></li> <li><a class="imagen" href="#">Periódicos</a>

<ul> <li><a href="http://www.lavozdegalicia.es">La Voz de

Galicia</A></li> <li><a href="http://www.farodevigo.es">El Faro de Vigo</A></li>

</ul> </li>

<li><a class="imagen" href="#">Televisiones</a> <ul>

<li><a href="http://www.rtve.es">Televisión española</a></li> <li><a href="http://www.cuatro.com">Cuatro</a></li>

</ul> </li>

<li><a href="http://www.msn.com">MSN</a></li> </ul> </div>

</body> </html>

Fichero CSS

#menu { font-family: Arial; margin:0px;

padding:0px;}

#menu ul { margin:0px; padding:0px;

list-style-type:none;}

#menu a { display: block; padding: 3px;

width: 160px; background-color: #f7f8e8;

border-bottom: 1px solid #eee; text-align:center;}

Page 30: JQuery-Apuntes

jQUERY 29

.imagen {

background-image:url(imagenes/triangulo.gif); background-position:top left;

background-repeat:no-repeat;} #menu a:link, #menu a:visited {

color: #f00; text-decoration: none;}

#menu a:hover { background-color: #369;

color: #fff;}

#menu li ul li a{ display: block;

padding: 3px; width: 160px;

background-color: #ffa; border-bottom: 1px solid #eee;

text-align:center;} ul li ul a:link, ul li ul a:visited {

color: #000; text-decoration: none;}

ul li ul a:hover { background-color: #369;

color: #fff;}

Fichero JavaScript

$(document).ready(function() {

$("#menu").children().children("li").each(function () { if ($(this).find("ul").size()!=0) $(this).find("ul").hide();

});

$("a").click(function(e) { if ($(this).parent().find("ul").size()!=0) {

if ($(this).parent().find("ul").css("display")=="none") $(this).parent().find("ul").show();

else $(this).parent().find("ul").hide(); }

}) })

Page 31: JQuery-Apuntes

jQUERY 30

Page 32: JQuery-Apuntes

ANEXO 31

ANEXO

OPERACIONES HABITUALES

1. Agregar una clase CSS a un elemento específico.

$('#elemento').addClass('clase');

2. Quitar una clase CSS de un elemento específico.

$('#elemento'). removeClass('clase');

3. Comprobar si un elemento tiene una clase CSS asignada.

$(id).hasClass(clase)

4. Reemplazar una hoja de estilo (CSS) con jQuery.

$('link[media='screen']').attr('href', 'nueva_hoja.css');

5. Añadir HTML a un elemento específico.

$('#id-del-elementp').append('codigo HTML aquí');

6. Verificar si existe o no un elemento.

if ($('img').length) {

log('Se encontraron elementos en la página usando "img"');

} else {

log('No se encontraron elementos img');

}

7. Conocer el elemento padre de otro elemento.

var id = $("button").closest("div").attr("id");

8. Obtener los elementos primos de un elemento.

$("div").siblings()

9. Remover un elemento de una lista desplegable.

$("#selectList option[value='2']").remove();

10. Obtener el texto de un elemento seleccionado.

$('#selectList :selected').text();

Page 33: JQuery-Apuntes

FUENTES 32

FUENTES

http://api.jquery.com/toggle/ jQuery API

http://www.maestrosdelweb.com/editorial/javascript-facil-y-rapido-con-jquery/

JavaScript fácil y rápido con jQuery

http://tecnokun.org/manipulando-el-dom-con-jquery-10-ejemplos-practicos/

Manipulando DOM con jQuery: 10+ejemplos prácticos

http://www.emenia.es/curso-de-jquery-2-selectores-primera-parte/ Curso de jQuery:

Selectores

http://parasitovirtual.wordpress.com/category/cursos-y-articulos/desarrollo-de-

webs/javascript/jquery/ JQuery: El rincón de un parásito virtual

http://www.javascriptya.com.ar/jquery/index.php?inicio=18 jQuery ya!