Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Si navegas mucho por la web te puedes dar cuenta que muchas pginas ofrecen interfaces web atractivas, con animaciones y muchas peticiones AJAX para no necesitar refrescar las pginas. Si te interesa implementar este tipo de funcionalidad en tus pginas, la mejor forma es utilizando una librera como por ejemplo jQuery. En este artculo te voy a ensear lo bsico de jQuery y te voy a mostrar unos cuantos ejemplos como este:
Qu es jQuery?
jQuery es una librera de JavaScript rpida y concisa que simplifica la manipulacin de HTML, manejo de eventos, animaciones e interacciones AJAX para que el desarrollo sea ms rpido. Existen muchas libreras parecidas a jQuery. estn Prototype, Script.aculo.us,MooTools, Dojo y YUI. Entre las ms conocidas
A pesar de que existen todas las libreras mencionadas, mi favorita es jQuery por las siguientes razones: Viene en una versin comprimida que pesa 24KB, mejorando as la velocidad de descarga de las pginas. Ofrece un modo "noConflict" que permite usar Javascript de forma que no interfiera con otras libreras. Gracias a esto, es posible utilizar jQuery y Prototype juntas. Funciona en mltiples navegadores. Con esto ya no necesito preocuparme del navegador en el que estoy para ejecutar cdigo JavaScript. Permite la creacin de Plugins. Ofrece una versin llamada jQueryUI que tiene componentes visuales como tablas, calendarios, acordeones, etc.
Modo noConflict
Toda la funcionalidad de jQuery est dentro del namespace llamado jQuery para evitar conflictos con funciones con los mismos nombres en otras libreras. Sin embargo jQuery utiliza como abreviatura el smbolo $ por lo que invocar a jQuery() es equivalente a invocar a $(). El smbolo de $ es muy comn en otras libreras por lo que si incluyeramos las libreras jQuery y Prototype ambas tendran la funcin $ generando un conflicto. Te recomiendo utilizar jQuery en modo noConflict para que tus aplicaciones no interfieran con otras libreras. Para ejecutar jQuery en modo noConflict basta con agregar el comando jQuery.noConflict(); despus de incluida la librera. El cdigo de tu pgina se debera ver como el siguiente: 01 <html> 02 <head> 03 <meta http-equiv="Content-Type" content="text/html;charset=UTF8" /> <script type="text/javascript" src="http://localhost/jquery1.4.2.min.js"></script> <script> jQuery.noConflict(); </script>
04 05
06 </head> 07 <body> 08 09 </body> 10 </html> Listo!! jQuery ya est incluido dentro de tu pgina web y puedes comenzar a utilizarlo.
Utilizando jQuery
Como ya he mencionado, toda la funcionalidad de esta librera se encuentra bajo el namespace jQuerypor lo que siempre comenzaremos con esta palabra. Para que quede un poco ms claro voy a mostarte un ejemplo bsicos que lo nico que hace es cambiarle el color a un elemento de la pgina. 01 <html> 02 <head> 03 <meta http-equiv="Content-Type" content="text/html;charset=UTF8" />
04 05
06 </head> 07 <body> 08 09 10 11 12 13 14 15 16 </p> evento on click. <!-- Muestro el contenido que va a cambiar --> <p id="contenido" style="width:150px;padding:10px;"> Bienvenido al primer ejemplo de copstone con jQuery. En este ejemplo podrs darte cuenta de cmo utilizar jQuery en un <!-- Muestro un boton para el evento click --> <input type="button" onclick="jQuery('#contenido').css('backgroundcolor', '#ff0000');" value="Cambiar color" />
17 </body> 18 </html> Cuando presionas el botn, el tag con id contenido cambia de color. Como puedes ver, esto se debe a que hemos ejecutado el comando jQuery('#contenido').css('background-color', '#ff0000');dentro del evento onclick. Como mencionamos antes todo comienza con jQuery. Luego entre parntesis sigue lo que llamamos unselector css, es decir, la indicacin del elemento(s) a el/los que queremos aplicar el efecto en este caso#contenido representa a todos los elementos que tengan id="contenido". Luego se llama al mtodo a aplicar, en este caso css y se le mandan los parmetros necesarios. En este caso estoy diciendo que se modifique el valor del atributo backgroundcolor con #ff0000 (rojo).
Para evitar estos errores, jQuery propone colocar el cdigo dentro de una funcin llamada ready que se ejecutar una vez que se haya cargado toda la pgina y est lista para ser modificada por jQuery. La estructura bsica de esta funcin es: 1 jQuery(document).ready(function(){ 2 3 }); Al principio puede parecer algo confuso pero pinsalo de la siguiente manera: Primero selecciono a quien le voy a aplicar el evento jQuery(document), es decir, al documento completo (toda la pgina). Luego selecciono el mtodo ready (cuando el documento est listo) que recibe como parmetro el cdigo completo de una funcin function() { } y por ltimo cierras el parntesis del mtodo readyterminando con un ; de fin de instruccin. Ahora voy a agregar el cdigo necesario para que al cargar la pgina se le coloque el color verde al contenido. 01 <html> 02 <head> 03 04 05 06 07 08 09 10 }); </script> <meta http-equiv="Content-Type" content="text/html;charset=UTF8" /> <script type="text/javascript" src="http://localhost/jquery1.4.2.min.js"></script> <script> jQuery.noConflict(); </script> <script> jQuery(document).ready(function(){ jQuery('#contenido').css('background-color', '#00ff00'); // Contenido de la funcion
11 </head> 12 <body> 13 14 15 16 17 <!-- Muestro el contenido que va a cambiar --> <p id="contenido" style="width:150px;padding:10px;"> <!-- Muestro un boton para el evento click --> <input type="button" onclick="jQuery('#contenido').css('backgroundcolor', '#ff0000');" value="Cambiar color" />
18 19 20 21 </p> evento
Bienvenido al primer ejemplo de copstone con jQuery. En este ejemplo podrs darte cuenta de cmo utilizar jQuery en un on click y cuando cargue la pgina.
22 </body> 23 </html>
Selector CSS
Todos los comandos de jQuery se aplican a uno o ms elementos. Para poder distinguir a que elemento se le debe aplicar es necesario utilizar selectores css, es decir, jQuery interpreta los selectores al igual como lo hace CSS. Aqu te doy un ejemplo de algunos selectores posibles: JQuery jQuery("*") Aplica a Aplica a todos los tags HTML de la pgina. Todos jQuery("#val") Por ejemplo aplicar a: <p id="val">Parrafo 1</p> Aplica a todos los elementos que tengan como atributo class el valor tipo. jQuery(".tipo") Por ejemplo aplicar a: <p class="tipo">Parrafo 1</p> Aplica jQuery("div") Por ejemplo aplicar a: <div id="uno">Parte uno</div> Aplica a todos los elementos de tipo p que se encuentren dentro de un elemento de tipo div. jQuery("div p") Por ejemplo aplicar al tag p de: <div>Esto es <p>un ejemplo</p></div> jQuery(document) jQuery(this) Aplica a todo el documento HTML. Aplica al elemento actual. Esto es muy til para jQuery anidado. a todos los elementos de tipo div. los tags que tengan como atributo id el valor val.
Existen muchos selectores ms. Si quieres buscar otros ejemplos te recomiendo visitar la documentacin de jQuery. Una vez que sabes como aplicar los selectores, es simplemente cuestin de llamar a los mtodos correctos los cuales puedes consultar en la documentacin de jQuery.
Ejemplos
Aqu te dejo unos pequeos ejemplos de lo que puedes hacer con jQuery. Todos los ejemplos invocan a funciones que las declarar dentro de script tags en la cabecera de la pgina web. En todos los ejemplos podrs ver un botn que dice DEMO, presinalo para ver el resultado de lo que se quiere lograr. Todos los botones DEMO llaman a la funcin que aparece abajo del botn por ejemplo: 1 <button onclick="funcionA();">DEMO</button>
4 }
style="display:none;">Esta es la alerta</span>) y programa para que se oculte despues de 1 segundo (1000 milisegundos). 1 function displayAlert() 2 { 3 4 } jQuery("#demoalert").css("display", "inline").fadeOut(1000);
Peticin AJAX
DEMO Antes de proceder con este ejemplo, te recomiendo que leas Introduccin a AJAX. Usando el ejemplo de dicho artculo voy a pedir los datos de una tabla utilizando una peticin AJAX de tipo GET que devuelve datos en formato JSON (pgina C del artculo Introduccin a Ajax). En la invocacin AJAX de jQuery he incluido 3 mtodos: beforeSend, success y complete. El mtodo beforeSend se ejecuta antes de realizar la peticin y lo nico que har es mostrar un mensaje que diga "Pidiendo datos". El mtodo success se ejecuta cuando la peticin se realiz satisfactoriamente, en este caso voy a armar una tabla HTML con los datos obtenidos y asignarla como contenido al div con id ajaxresult. Para que esto funcione necesitas tener dentro de tu pgina un tag como el siguiente: <div id="ajaxresult"></div> El mtodo complete se ejecuta cuando la peticin termin ya sea con un error o no y muestra un mensaje diciendo que la peticin ha terminado. 01 function invocarAjax() 02 { 03 04 05 06 jQuery.ajax({ type: "GET", dataType: "json", url: '/wp-content/uploads/js/jquery_ajax.html',
07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 } });
beforeSend: function (request) { jQuery('#ajaxresult').html("Pidiendo datos"); jQuery('#ajaxresult').show("fast"); }, success: function(data) { var tabla = "<table border='3'>"; for (i = 0; i < data.length; i++) { tabla += "<tr>"; for (k = 0; k < data[i].length; k++) { if (i == 0) // primera fila tabla += "<th>" + data[i][k] + "</th>"; else tabla += "<td>" + data[i][k] + "</td>"; } tabla += "</tr>"; } tabla += "</table>"; jQuery('#ajaxresult').html(tabla); }, complete: function (request, errCode) { if (errCode != "success") alert("Ocurrio un error"); else alert("Termino satisfactoriamente"); }
Ms adelante ir publicando otros artculos que muestran como realizar efectos especficos con jQuery. Por el momento te recomiendo que vayas investigando acerca de jQuery ya que toda la informacin est en sudocumentacin.