Professional Documents
Culture Documents
com/photos/robertbanh/4119832814
Tema 4
Libreras
Javascript. jQuery
Libreras Javascript.
jQuery
1.
Introduccin a
las libreras
Javascript
Productividad
Libreras Javascript
Ventajas:
Permiten una mayor productividad, simplificando las tareas ms comunes
Trabajo con DOM
AJAX
Animaciones
Widgets o componentes grficos
Inconvenientes:
Ejemplo
AJAX en prototype.js
new Ajax.Request('/una_url',
{
method:'get',
//podemos pasar parmetros HTTP de manera sencilla.
parameters: {param1: 'valor1', param2: 'valor2'},
//El parmetro 'transport' no es ni ms ni menos que el XMLHttpRequest.
//Si la respuesta del servidor es de tipo JSON, automticamente se llama a
//eval() y se obtiene el resultado en el segundo parmetro
onSuccess: function(transport,json){
if (json)
alert("me han enviado un objeto con JSON!!);
else
alert("La respuesta del servidor es: " + transport.responseText);
},
onFailure: function(){ alert('Error') }
});
Algunas libreras
http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks
Todoterreno
Prototype (http://prototype.js.org)
jQuery (http://jquery.com)
MooTools (http://mootools.net)
Closure (http://code.google.com/intl/es-ES/closure/)
...
Widgets:
DOJO (http://dojotoolkit.org)
ExtJS (http://www.sencha.com/products/js/)
YUI (http://developer.yahoo.com/yui/2/)
jQuery UI (http://jqueryui.com)
Animaciones
Scriptaculous (http://script.aculo.us)
jQuery UI
Frameworks avanzados
Intentan hacer que la programacin de aplicaciones
web sea como la de aplicaciones de escritorio
Algunos ejemplos
GWT - Google Web Toolkit: un poco peculiar, ya que
se programa en Java y el resultado se traduce
automticamente a Javascript
Capuccino
SproutCore (Apple): framework tras muchas
aplicaciones web de Apple (p.ej. iCloud.com)
Libreras Javascript.
jQuery
Introduccin a
jQuery
Qu es jQuery?
La funcin $
Encadenar comandos
Libreras Javascript.
jQuery
Selectores
Seleccionando nodos y
ejecutando operaciones
bsicas sobre ellos
13
Selectores jQuery
//ejemplos
//todos los prrafos
$('p')
//todos los prrafos con class=destacado
$('p.destacado')
//todas las listas, ordenadas o con vietas
$('ol, ul')
//todas las etiquetas. Cuidado: este cdigo es muy lento
$('*')
Podemos acceder a los nodos reales del DOM por posicin, bien con
notacin de array o bien con el mtodo get()
//cambiar el href del primer enlace de la pgina
//Como queremos usar el API DOM tenemos que acceder al nodo
$('a')[0].href = 'http://www.ua.es'
//idem, con get(). Podemos saber el tamao con size()
$('a').get(0).href = 'http://www.ua.es'
alert('Hay ' + $('a').size() + ' enlaces')
Implcito
Cuando un selector engloba a varios nodos, el comando jQuery
implcitamente hace un bucle por todos los nodos
//Esto ocultara TODOS los prrafos
$('p').hide()
Explcito
Podemos movernos por el conjunto con each(), pasndole una funcin
a ejecutar para cada elemento. La funcin recibir automticamente
como parmetro el ndice del elemento actual dentro del conjunto. Con
this podemos acceder al elemento.
$('a').each(function(i)
{
alert(el enlace n + i + " apunta a " + this.href)
})
Libreras Javascript.
jQuery
Navegacin y
manipulacin
del DOM
20
$('ul').children()
$('p').parent('div')
$('#imagen').closest('div')
clone()
//Hace una copia de todas las imgenes y las mete dentro
//del elemento con id=galeria
$('img').clone().appendTo('#galeria')
Libreras Javascript.
jQuery
5.
Eventos
27
Gestin de eventos
live()
$('input[type=button]').live(click,function() {alert(hola)})
<div id=miDiv></div>
//con el bind normal este botn no tendra listener para click
$('<input>',
{ type:'button',
value=Clica aqu})
.appendTo($(#miDiv))
Libreras Javascript.
jQuery
6.
Efectos y
animaciones
33
Animaciones
Animaciones personalizadas
Libreras Javascript.
jQuery
7.
AJAX
Simplificando la peticin
AJAX y el procesamiento de
la respuesta
36
AJAX
Si sabemos que nos envan HTML podemos usar load() para cargar
la respuesta en algn punto del DOM
$('#resultado').load(
'getCotizacionHTML.php',
{empresa: 'AAPL', moneda:'eur' }
)
Referencias