64
StarTechConf 2011 @mikehostetler Mike Hostetler @mikehostetler http://mike-hostetler.com jQuery('#knowledge') .appendTo('#you'); Tuesday, December 6, 11

Mike hostetler - jQuery knowledge append to you

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Mike Hostetler@mikehostetler

http://mike-hostetler.com

jQuery('#knowledge').appendTo('#you');

Tuesday, December 6, 11

Page 2: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Who am I?¿Quién soy?

Tuesday, December 6, 11

Page 3: Mike hostetler - jQuery knowledge append to you

@mikehostetler

StarTechConf 2011

Tuesday, December 6, 11

Page 4: Mike hostetler - jQuery knowledge append to you

@mikehostetler

StarTechConf 2011

Tuesday, December 6, 11

Page 5: Mike hostetler - jQuery knowledge append to you

@mikehostetler

StarTechConf 2011

Tuesday, December 6, 11

Page 6: Mike hostetler - jQuery knowledge append to you

@mikehostetler

StarTechConf 2011

http://learn.appendto.com

Tuesday, December 6, 11

Page 7: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

The jQuery ProjectEl proyecto jQuery

Tuesday, December 6, 11

Page 8: Mike hostetler - jQuery knowledge append to you

@mikehostetler

StarTechConf 2011

jQuery Core

jquery.com

jQuery UI

jqueryUI.com

jQuery Mobile

jquerymobile.com

QUnit

qunitjs.com

jQuery Project - jquery.org(Software Freedom Conservancy)

Tuesday, December 6, 11

Page 9: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

‣ jquery.com Downloading / Descargar

‣api.jquery.com Documentation / Documentación

‣ forum.jquery.com Community / Comunidad

‣meetups.jquery.com Local Community / Comunidad local

‣plugins.jquery.com Extending / Extensión

‣ jqueryui.com Project Supported UI Library

‣ jquerymobile.com Project Supported Mobile Library

Using  jQuery

Tuesday, December 6, 11

Page 10: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Including jQueryIncluyendo jQuery

Tuesday, December 6, 11

Page 11: Mike hostetler - jQuery knowledge append to you

@mikehostetler

StarTechConf 2011

http://jquery.com/download https://github.com/jquery/jquery

or use a CDN ...

Tuesday, December 6, 11

Page 12: Mike hostetler - jQuery knowledge append to you

@mikehostetler

StarTechConf 2011

Minified

Source

Tuesday, December 6, 11

Page 13: Mike hostetler - jQuery knowledge append to you

@mikehostetler

StarTechConf 2011

Add the <script> tags ...<!DocType HTML><html> <head> .... </head> <body> .... <script src="http://code.jquery.com/jquery-1.7.min.js"></script> </body></html>

(Use http://html5boilerplate.com/)

Tuesday, December 6, 11

Page 14: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Your first jQuerySu primera jQuery

Tuesday, December 6, 11

Page 15: Mike hostetler - jQuery knowledge append to you

@mikehostetler

StarTechConf 2011

jQuery Function / Función de jQuery

jQuery( );

// That’s it

Tuesday, December 6, 11

Page 16: Mike hostetler - jQuery knowledge append to you

@mikehostetler

StarTechConf 2011

The $

// $ is an allowed variable in JavaScript

window.jQuery = window.$ = jQuery;

$ === jQuery // TRUE

Tuesday, December 6, 11

Page 17: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Finding SomethingPara encontrar algo

Tuesday, December 6, 11

Page 18: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Finding  Something// Select By ID / Selección por ID

<div id=”foo”></div><div></div>

$(‘#foo’);

<div id=”foo”></div><div></div>

Tuesday, December 6, 11

Page 19: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Finding  Something// Select by class / Selección por ‘class’

<div class=”myClass foo bar”></div><div class=”baz myClass”></div><div class=”bar”></div>

$(‘.myClass’)

<div class=”myClass foo bar”></div><div class=”baz myClass”></div><div class=”bar”></div>

Tuesday, December 6, 11

Page 20: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Finding  Something// Select by tag / Selección por ‘tag’<ul> <li>Apple</li> <li>Pear</li></ul>

$(“li”);

<ul> <li>Apple</li> <li>Pear</li></ul>

Tuesday, December 6, 11

Page 21: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Finding  Something  in  ContextEncontrar  algo  en  su  contexto

‣Entire Document / Documento completo$(‘div’)

‣ Scope your selector / Ámbito de su selección$(‘selector’, <context>)$(‘#table’).find(‘selector’)

‣$(‘a’).click(function() { $(‘span’, this)...});

Tuesday, December 6, 11

Page 22: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Do SomethingHacer algo

Tuesday, December 6, 11

Page 23: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Do  Something<p>One</p><p>Two</p><p>Three</p>

// Find Something / Encontrar algo$(‘p’)// Do Something / Hacer algo$(‘p’).hide();

// Generic Syntax $(‘p’) . <Method Name> ( [PARAMETERS] );

Tuesday, December 6, 11

Page 24: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Showing  and  Hiding// HTML<p>One</p><p>Two</p><p>Three</p>

// Show the elements / Mostrar los elementos$(‘p’).show();

// Hide the elements / Ocultar los elementos$(‘p’).hide();

Tuesday, December 6, 11

Page 25: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Showing  and  Hiding// HTML<p>One</p><p>Two</p><p>Three</p>

// Show the elements / Mostrar los elementos$(‘p’).show();

// Hide the elements / Ocultar los elementos$(‘p’).hide();

Tuesday, December 6, 11

Page 26: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Iteration  /  Iteración<p>One</p><p>Two</p><p>Three</p>

$(‘p’).each(function() { // Operates on each p individually var rand; rand = Math.floor( Math.random() * 1 ); if(rand > 1) { $(this).hide(); }});

Tuesday, December 6, 11

Page 27: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Iteration  /  Iteración<p>One</p><p>Two</p><p>Three</p>

$(‘p’).each(function() { // Operates on each p individually var rand; rand = Math.floor( Math.random() * 1 ); if(rand > 1) { $(this).hide(); }});

Tuesday, December 6, 11

Page 28: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Iteration  /  Iteración<p>One</p><p>Two</p><p>Three</p>

$(‘p’).each(function() { // Operates on each p individually var rand; rand = Math.floor( Math.random() * 1 ); if(rand > 1) { $(this).hide(); }});

Tuesday, December 6, 11

Page 29: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Styling// HTML<p>One</p><p class=”foo”>Two</p><p>Three</p>

$(‘p’).addClass(‘enabled’);

$(‘p’).removeClass(‘foo’);

$(‘p’).toggleClass(‘foo’);

Tuesday, December 6, 11

Page 30: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Styling// HTML<p class=”enabled”>One</p><p class=”enabled foo”>Two</p><p class=”enabled”>Three</p>

$(‘p’).addClass(‘enabled’);

$(‘p’).removeClass(‘foo’);

$(‘p’).toggleClass(‘foo’);

Tuesday, December 6, 11

Page 31: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Styling// HTML<p class=”enabled”>One</p><p class=”enabled”>Two</p><p class=”enabled”>Three</p>

$(‘p’).addClass(‘enabled’);

$(‘p’).removeClass(‘foo’);

$(‘p’).toggleClass(‘foo’);

Tuesday, December 6, 11

Page 32: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Styling// HTML<p class=”enabled foo”>One</p><p class=”enabled foo”>Two</p><p class=”enabled foo”>Three</p>

$(‘p’).addClass(‘enabled’);

$(‘p’).removeClass(‘foo’);

$(‘p’).toggleClass(‘foo’);

Tuesday, December 6, 11

Page 33: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Method ChainingEncadenamiento de métodos

Tuesday, December 6, 11

Page 34: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Method  Chaining// Good / Bueno$(‘tr:odd’).addClass(‘odd’).find(‘td.company’).addClass(‘companyName’);

// Better / Mejor$(‘tr:odd’) .addClass(‘odd’) .find(‘td.company’) .addClass(‘companyName’) .end();

Tuesday, December 6, 11

Page 35: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Method  Chaining$(‘tr’) .filter(‘:odd’) .addClass(‘odd’) .end() .find(‘td.company’) .addClass(‘companyName’);

Tuesday, December 6, 11

Page 36: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

DOM ManipulationManipulación del DOM

Tuesday, December 6, 11

Page 37: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Creating  Elements  /  Creación  de  elementos$("<div/>", { class: "test", text: "Click me!", click: function(){ $(this).toggleClass("test"); }});

// Clicking toggles the class / Al hacer clic cambia la ‘class’<div class=”test”>Click me!</div>

Tuesday, December 6, 11

Page 38: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Inserting  Elements  /  Insertar  elementos// Before / Antes<p>Apple</p><p>Orange</p>

$(‘p’).after(‘<img src=”logo.png” />’);

// After / Después<p>Apple</p><img src=”logo.png /><p>Orange</p><img src=”logo.png />

Tuesday, December 6, 11

Page 39: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Inserting  Elements  /  Insertar  elementos// Before / Antes<p id=”apple”>Apple</p><p id=”orange”>Orange</p>

$(‘<img src=”apple.png” />’).prependTo(‘#apple’);$(‘<img src=”orange.png” />’).appendTo(‘#orange’);

// After / Después<p id=”apple”><img src=”apple.png” />Apple</p><p id=”orange”>Orange<img src=”orange.png” /></p>

Tuesday, December 6, 11

Page 40: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Removing  Elements  /  Remover  elementos// Before / Antes<div> <p>Red</p> <p>Green</p></div>

// Removing Elements Directly / Eliminación de los elementos directamente.$(‘p’).remove();

// After / Después<div> </div>

Tuesday, December 6, 11

Page 41: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Wrapping  Elements  /  Envolver  elementos// Before / Antes<p>Hello world</p><p>Foo bar</p>

$(‘p’).wrap(‘<div></div>’);

// After / Después<div><p>Hello world</p></div><div><p>Foo bar</p></div>

Tuesday, December 6, 11

Page 42: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Unwrapping  Elements// Before / Antes<div><p>Hello world</p></div><div><p>Foo bar</p></div>

// Individually / Individualmente$(‘p’).unwrap();

// After / Después<p>Hello world</p><p>Foo bar</p>

Tuesday, December 6, 11

Page 43: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Binding Events / Definir Eventos

Tuesday, December 6, 11

Page 44: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Click  Event  /  Evento  de  Clic// HTML<p>One</p><p>Two</p><p>Three</p>

$(‘p’).click(function(event) { $(this).css(‘color’, ‘red’);});

Tuesday, December 6, 11

Page 45: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Click  Event  /  Evento  de  Clic// HTML<p>One</p><p style=”color: red”>Two</p> // Clicked!<p>Three</p>

$(‘p’).click(function(event) { $(this).css(‘color’, ‘red’);});

Tuesday, December 6, 11

Page 46: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Hover  Pseudo  Event  /  Evento  de  Hover  // HTML<p>One</p><p>Two</p><p>Three</p>

$(‘p’).hover(function(event) { $(this).css(‘color’, ‘red’);}, function() { $(this).css(‘color’, ‘’);});

Tuesday, December 6, 11

Page 47: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Binding  &  Unbinding  /  Definir  &  liberar// HTML<p>One</p><p>Two</p><p>Three</p>

// Add event / Agregar evento$(‘p’).bind(‘click’,function(event) { $(this).css(‘color’, ‘red’);});

// Remove event / Quitar Evento$(‘p’).unbind(‘click’);

Tuesday, December 6, 11

Page 48: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Binding  Events  with  .bind()// Binding an event / Definir Evento$('a.tab').bind('click',function(e){ // event handling code $(this).css(‘color’, ‘red’);});

// Unbinding an event / Liberar Evento$('a.tab').unbind('click');

Tuesday, December 6, 11

Page 49: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Binding  Events// Bind an event to execute once / Definar Evento que corra una sola vez$('a.tab').one('click',function(e){ // event handling code  $(this).css(‘color’,‘red’);});

Tuesday, December 6, 11

Page 50: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Ajax

Tuesday, December 6, 11

Page 51: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Making  a  Request  /  Hacer  un  pedido$.get(‘page.php’, function(data) { $(data).appendTo(‘body’);}, ‘html’);

var data = { fname: ‘Jonathan’ };$.post(‘page.php’, data, function(data) { $(data).appendTo(‘body’);}, ‘html’);

Tuesday, December 6, 11

Page 52: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Making  a  Request  with  JSON  Hacer  un  pedido  de  JSON

// Response / Respuesta{“names”: [“Jonathan”, “Mike”, “Rob”], “states”: {“NE” : “Nebraska”}, “year” : “2011” }

$.getJSON(‘page.php’, function(json) { $(‘body’).append( json.names[0] ); $(‘body’).append( json.states.NE );});

Tuesday, December 6, 11

Page 53: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Making  a  Request  JSON// Response{ “names”: [“Jonathan”, “Mike”, “Rob”] }

$.getJSON(‘page.php’, function(json) { $.each(json.names, function(i, val) { $(‘body’).append( val ); });});

Tuesday, December 6, 11

Page 54: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Writing Your First PluginEscribe tu primer plugin

Tuesday, December 6, 11

Page 55: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

// Function Namespace$.fn

// Define / Definir$.fn.elementCount = function() { alert(‘Element count: ’ + this.length);};

// Execute / Ejecutar$(‘p’).elementCount();

Writing  your  first  Plugin

Tuesday, December 6, 11

Page 56: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

$.fn.elementCount = function() { // this is a jQuery Object this.each(function(i) { // this is the element $(this).html($(this).html() +‘ ‘+ i); });};

$(‘p’).elementCount();

Plugins  &  Iteration  /  Plugins  &  Iteración

Tuesday, December 6, 11

Page 57: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

// Add support for chaining$.fn.elementCount = function() { return this.each(function(i) { $(this).html($(this).html() +‘ ‘+ i); });};

$(‘p’).elementCount().addClass(‘active’);;

Plugins  and  Chaining

Tuesday, December 6, 11

Page 58: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

// Plugin is required to return this$.fn.SantiagoAMil = function() { return this.each(function(i) { $(this).css(‘color’, ‘red’); });};

$(‘p’).SantiagoAMil().addClass(‘fiesta’);

Plugins  and  Chaining

Tuesday, December 6, 11

Page 59: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

The Plugin PatternEl patrón de Plugin

Tuesday, December 6, 11

Page 60: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

(function($) { $.fn.SantiagoAMil = function() { return this.each(function(i) { $(this).css(‘color’, ‘red’); }); };})(jQuery);

$(‘p’).SantiagoAMil();

The  Plugin  Pattern

Tuesday, December 6, 11

Page 61: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

(function($, undefined) { $.fn.SantiagoAMil = function() { return this.each(function(i) { $(this).css(‘color’, ‘red’); }); };})(jQuery);

$(‘p’).SantiagoAMil();

The  Plugin  Pattern

Tuesday, December 6, 11

Page 62: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

(function($) { $.fn.SantiagoAMil = function(color) { return this.each(function(i) { $(this).css(‘color’, color); }); };})(jQuery);

$(‘p’).SantiagoAMil(‘verde’);

The  Plugin  Pattern

Tuesday, December 6, 11

Page 63: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

(function($) { $.fn.SantiagoAMil = function(color, begin) { if ( $.isFunction(begin) ) { begin(); } return this.each(function(i) { $(this).css(‘color’, color); }); };})(jQuery);

$(‘p’).SantiagoAMil(‘verde‘, begin: function() {alert(‘BEGIN!’)});

The  Plugin  Pattern

Tuesday, December 6, 11

Page 64: Mike hostetler - jQuery knowledge append to you

StarTechConf 2011

@mikehostetler

Thank You!¡Gracias!@mikehostetler

http://mike-hostetler.comhttp://learn.appendto.com

Questions? / ¿Preguntas?

Tuesday, December 6, 11