Diferencia entre revisiones de «Usuario:Juanda/jQuery/Introducción»
De WikiEducator
(→Instalación plugin de jQuery para Eclipse Kepler) |
|||
(46 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 1: | Línea 1: | ||
{{Usuario:juanda/jQuery/nav }} | {{Usuario:juanda/jQuery/nav }} | ||
− | {{MiTitulo| Introducción}} | + | {{#widget:Slides}} {{MiTitulo| Curso de jQuery-Introducción}} |
− | + | ||
<div class="slides layout-regular template-default"> | <div class="slides layout-regular template-default"> | ||
<div class="slide"> | <div class="slide"> | ||
Línea 7: | Línea 6: | ||
= Introducción = | = Introducción = | ||
</div> | </div> | ||
+ | |||
<div class="slide"> | <div class="slide"> | ||
− | === | + | === Requerimientos previos === |
+ | *html | ||
+ | *Conocimiento básico de javascript | ||
+ | *Conocimiento básico de document object model (DOM) | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | === ¿Qué es jQuery? === | ||
*jQuery es una librería de funciones JavaScript: | *jQuery es una librería de funciones JavaScript: | ||
− | *“Write less, do more” (escribe menos, haz más) | + | *'''“Write less, do more”''' (escribe menos, haz más) |
*Funcionalidad: | *Funcionalidad: | ||
:Selección y manipulación de elementos HTML y CSS | :Selección y manipulación de elementos HTML y CSS | ||
Línea 18: | Línea 24: | ||
:AJAX | :AJAX | ||
:Compatibilidad con todos los navegadores | :Compatibilidad con todos los navegadores | ||
− | :… | + | :… |
− | + | </div> | |
+ | <div class="slide"> | ||
+ | ===Versiones de jQuery=== | ||
+ | *Versión actual de jQuery: '''1.10.2''' y '''2.0.3''' | ||
+ | *[http://jquery.org/license/ Licencia MIT] | ||
+ | *La funcionalidad es la misma | ||
+ | *La rama 2.x no es compatible con IE 6-8 | ||
+ | *La rama 2.x es algo más ligera | ||
+ | *Usaremos la rama 1.x: | ||
+ | :Misma funcionalidad | ||
+ | :Mayor compatibilidad | ||
</div> | </div> | ||
+ | |||
<div class="slide"> | <div class="slide"> | ||
− | |||
− | * | + | === Versiones de jQuery === |
− | * | + | *Versión de producción: |
+ | :Minified y comprimida | ||
+ | :Aproximadamente 90KB | ||
+ | *Versión de desarrollo: | ||
+ | : Sin comprimir | ||
+ | : Aproximadamente 3 veces más pesada, en torno a 270KB | ||
− | + | *La rama 2.x pesa un 10% menos, resulta inapreciable | |
− | + | ||
− | + | ||
− | * | + | *Se puede descargar de [http://www.jquery.com/download la web de jQuery] |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
− | + | *Versión de producción: | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | * | + | |
<source lang="javascript"> | <source lang="javascript"> | ||
− | + | <script type="text/javascript" src="jquery-1.10.2.min.js"></script> | |
− | <script type="text/javascript"> </script> | + | </source> |
+ | *Versión de desarrollo | ||
+ | <source lang="javascript"> | ||
+ | <script type="text/javascript" src="jquery-1.10.2.js"></script> | ||
</source> | </source> | ||
− | |||
</div> | </div> | ||
+ | |||
<div class="slide"> | <div class="slide"> | ||
− | + | ||
− | + | === Uso de un CDN === | |
− | + | ||
− | * | + | *También a través de un '''CDN''' (Content Delivery Network). |
+ | *¿Qué es un CDN? Grupo de servidores repartidos por todo el mundo en puntos estratégicos y pensados para la distribución de ficheros): | ||
+ | * CDN de Google: | ||
<source lang="javascript"> | <source lang="javascript"> | ||
− | // | + | <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> |
</source> | </source> | ||
− | + | *CDN de Microsoft: | |
− | * | + | |
<source lang="javascript"> | <source lang="javascript"> | ||
− | + | <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.10.2.min.js"></script> | |
+ | </source> | ||
+ | *CDN del propio jQuery: | ||
+ | : Minified: | ||
+ | <source lang="javascript"> | ||
+ | <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script> | ||
+ | </source> | ||
+ | :Full: | ||
+ | <source lang="javascript"> | ||
+ | <script type="http://code.jquery.com/jquery-1.10.2.js"></script> | ||
</source> | </source> | ||
</div> | </div> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<div class="slide"> | <div class="slide"> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | === Momento de Ejecución del código Javascript === | ||
+ | * Cuando la página se ha cargado. | ||
+ | <source lang="javascript"> | ||
+ | window.onload = function(){ /*Aquí viene mi código de javascript*/ } | ||
+ | </source> | ||
+ | * ¿Por qué? No se puede ejecutar hasta que el DOM se haya cargado completamente | ||
+ | * Desventaja: Habrá que esperar la carga completa de imágenes y anuncios para su ejecución. | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
− | = | + | {{Actividad| |
+ | Title=Hola Mundo mediante javascript| | ||
+ | * Crea una página web con un enlace que muestre un alert con el texto "Hola Mundo" y que "anule" el enlace. | ||
<source lang="html4strict"> | <source lang="html4strict"> | ||
− | <html> | + | <!DOCTYPE html> |
− | + | <html> | |
− | + | <head> | |
− | + | <meta charset="utf-8"> | |
− | + | <title>Hola Mundo en javaScript</title> | |
− | + | <script type="text/javascript"> | |
− | </html> | + | window.onload = function() { |
+ | document.getElementById("holamundo").onclick = holaMundo; | ||
+ | } | ||
+ | function holaMundo() | ||
+ | { | ||
+ | alert ("Hola Mundo"); | ||
+ | return false; | ||
+ | } | ||
+ | </script> | ||
+ | </head> | ||
+ | <body> | ||
+ | <a id="holamundo" href="http://jquery.com/">jQuery</a> | ||
+ | </body> | ||
+ | </html> | ||
</source> | </source> | ||
− | + | }} | |
− | + | ||
− | + | ||
− | + | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
− | === | + | === Momento de Ejecución del código jQuery === |
− | + | * Cuando el documento (DOM) esté preparado para ser manipulado. | |
− | + | * Antes de que se carguen imágenes o anuncios. | |
− | + | * ¡Ojo al efectuar acciones sobre imágenes si no están todavía cargadas! | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | <source lang="javascript"> | |
− | + | ||
+ | $(document).ready(function(){ | ||
+ | // Aquí viene mi código jQuery | ||
+ | }); | ||
+ | </source> | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
+ | {{Actividad| | ||
+ | Title=Hola Mundo mediante jQuery| | ||
+ | * Descarga una versión de jQuery e inserta las siguientes instrucciones de jQuery: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<source lang="html4strict"> | <source lang="html4strict"> | ||
− | <head> | + | $("a").click(function(event) { |
− | + | alert("Hola Mundo"); | |
+ | event.preventDefault(); | ||
+ | }); | ||
+ | </source> | ||
+ | *Resultado actividad: | ||
+ | <source lang="html4strict"> | ||
+ | <!DOCTYPE html> | ||
+ | <html lang="en"> | ||
+ | <head> | ||
+ | <meta charset="utf-8"> | ||
+ | <title>Hola Mundo con jquery</title> | ||
+ | <script src="jquery-1.10.2.min.js"></script> | ||
+ | <script> | ||
+ | $(document).ready(function() { | ||
+ | $("a").click(function(event) { | ||
+ | alert("Hola Mundo"); | ||
+ | event.preventDefault(); | ||
+ | }); | ||
+ | }); | ||
+ | </script> | ||
</head> | </head> | ||
<body> | <body> | ||
− | < | + | <a href="http://jquery.com/">jQuery</a> |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</body> | </body> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</html> | </html> | ||
</source> | </source> | ||
}} | }} | ||
− | |||
</div> | </div> | ||
− | |||
<div class="slide"> | <div class="slide"> | ||
+ | === Instalación plugin de jQuery para Eclipse Kepler o Luna === | ||
+ | *Instalamos el Marketplace de Eclipse desde Help->Install new Software (por defecto ya está instalado en Eclipse Kepler) | ||
+ | *Ejecutamos Help->Eclipse Marketplace y buscamos JSDT jQuery y lo instalamos | ||
+ | *Seleccionamos el proyecto y pulsamos en properties (botón derecho) y pulsamos JavaScript->Include Patht Library y seleccionamos jQuery. | ||
− | + | *Si el plugin de jQuery no funciona, tocará utilizar Eclipse Juno :-( | |
− | + | *En Brackets funciona correctamente :-) | |
− | * | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
− | === | + | ===Sintaxis=== |
+ | '''$(selector).action()''' | ||
+ | *'''$''': Simbolo para definir JQuery (podríamos usar también JQuery) | ||
+ | :'''selector''': Consulta sobre los elementos HTML (sintaxis muy similar a CSS) | ||
+ | :'''action''': Acción que se ejecuta sobre los elementos | ||
− | + | *Ejemplos: | |
− | + | <source lang="javascript"> | |
− | + | $(this).hide() //oculta el elemento actual | |
− | + | $("p").hide() //oculta todos los elementos de tipo párrafo | |
− | + | $("p.test").hide() //oculta todos los párrafos con class=test | |
− | + | $("#test").hide() //oculta todos los elementos con id=test | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | * | + | |
− | + | ||
− | <source lang=" | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</source> | </source> | ||
Línea 259: | Línea 206: | ||
<div class="slide"> | <div class="slide"> | ||
− | + | === Ejemplos de uso del selector de jQuery === | |
− | + | <source lang="javascript"> | |
− | + | $("p") //se seleccionan todos los elementos de tipo párrafo | |
− | + | $("p.intro") //todos los párrafos con class=intro | |
− | + | $("p#demo") //todos los párrafos con id=demo | |
− | + | $("[href]") //todos los elementos con atributo href | |
− | + | $("[href='#']") //todos los elementos con atributo href="#" | |
− | + | $("[href!='#']") //todos los elementos con atributo href diferente de "#" | |
− | + | $("[href$='.jpg']") //todos los elmentos con atributo href que acabe en .jpg | |
+ | $("p").css("background-color","yellow"); //modificamos el background-color de todos los párrafos a amarillo | ||
+ | $("p#intro:first") //El primer párrafo con id="intro" | ||
+ | $("ul li:first") El primer elemento <li> de cada <ul> | ||
+ | $("div#intro .head") //Todos los elementos con class="head" dentro de un <div> con id="intro" | ||
+ | </source> | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
− | * | + | ===jQuery.noConflict()=== |
− | + | * Utilizamos jQuery.noConflict() para evitar conflictos de nombre con otras librerías de JavaScript. | |
− | <source lang=" | + | <source lang="javascript"> |
− | <!DOCTYPE html | + | <!DOCTYPE html> |
− | <html | + | <html> |
− | + | <head> | |
− | + | <script src="jquery.js"></script> | |
− | + | <script> | |
− | + | var jq=jQuery.noConflict(); | |
− | + | jq(document).ready(function(){ | |
− | + | jq("button").click(function(){ | |
− | + | jq("p").hide(); | |
− | + | }); | |
− | + | }); | |
− | + | </script> | |
− | + | </head> | |
+ | <body> | ||
+ | <p>Esto es un párrafo.</p> | ||
+ | <button>Pulsa aquí</button> | ||
+ | </body> | ||
</html> | </html> | ||
</source> | </source> | ||
+ | |||
</div> | </div> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</div> | </div> |
Última revisión de 06:24 19 nov 2013