211
Introdução ao JQuery e AJAX Prof: Sérgio Souza Costa Write Less DO MORE

Introdução ao JQuery e AJAX

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Introdução ao JQuery e AJAX

Introdução ao JQuery e AJAXProf: Sérgio Souza Costa

Write Less

DO MORE

Page 2: Introdução ao JQuery e AJAX

Sobre mim

Sérgio Souza CostaProfessor - UFMADoutor em Computação Aplicada (INPE)

[email protected]

https://sites.google.com/site/profsergiocosta/home

https://twitter.com/profsergiocosta

http://gplus.to/sergiosouzacosta

http://www.slideshare.net/skosta/presentations?order=popular

Page 3: Introdução ao JQuery e AJAX

"Considered a “toy” language by serious web developers for most of its lifetime, Java-Script has regained its prestige in the past few years as a result of the renewed interest in Rich Internet Applications and Ajax technologies".

John Resig - jQuery in Action

Page 4: Introdução ao JQuery e AJAX

O que é JQuery ?

Page 5: Introdução ao JQuery e AJAX

O que é JQuery ?

HTML/ BrowserJavaScript

Page 6: Introdução ao JQuery e AJAX

O que é JQuery ?

HTML/ BrowserJavaScript DOM/

BOM

Page 7: Introdução ao JQuery e AJAX

O que é JQuery ?

HTML/ BrowserJavaScript DOM/

BOMJQuery

Page 8: Introdução ao JQuery e AJAX

O que é JQuery ?

HTML/ BrowserJavaScript DOM/

BOMJQuery

Independente de browser

Page 9: Introdução ao JQuery e AJAX

O que é JQuery ?

HTML/ BrowserJavaScript DOM/

BOMJQuery

Independente de browser

JQuery é uma biblioteca JavaScript, ou seja, um conjunto de objetos e funções em um arquivo js.

Page 10: Introdução ao JQuery e AJAX

Como usar ?

Matando a ansiedade com um "Hello World"

Acesse http://jquery.com/, e baixem o arquivo JQuery

Page 11: Introdução ao JQuery e AJAX

Como usar ?

Matando a ansiedade com um "Hello World"

Acesse http://jquery.com/, e baixem o arquivo JQuery

ou diretamente:

http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js

Page 12: Introdução ao JQuery e AJAX

Como usar ?

Matando a ansiedade com um "Hello World"

Acesse http://jquery.com/, e baixem o arquivo JQuery

ou diretamente:

http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js

ou baixem o hello_jquery.rar, no site

Page 13: Introdução ao JQuery e AJAX

Como usar ?

Matando a ansiedade com um "Hello World"

Acesse http://jquery.com/, e baixem o arquivo JQuery

ou diretamente:

http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js

ou baixem o hello_jquery.rarO "min" significa que este arquivo foi "minificado", ou seja, eliminado todos os espaçamentos, tabs ...

Page 14: Introdução ao JQuery e AJAX

Hello World

<!DOCTYPE html><html><head><meta charset="utf-8" /><title></title> <script type="text/javascript" src="jquery.min.js"></script> <script type="text/javascript" >$(document).ready( function(){ $ ("body").html ("<p>Ola Mundo !!</p>")

})</script></head><body></body></html>

equivalente ao window.onload

Page 15: Introdução ao JQuery e AJAX

Hello World

<!DOCTYPE html><html><head><meta charset="utf-8" /><title></title> <script type="text/javascript" src="jquery.min.js"></script> <script type="text/javascript" >$(document).ready( function(){ $ ("body").html ("<p>Ola Mundo !!</p>")

})</script></head><body></body></html>

equivalente ao window.onload

Observem o uso de funções como parâmetros e de funções anônimas.

Page 16: Introdução ao JQuery e AJAX

Hello World - 2 - Atalho "document ready"<!DOCTYPE html><html><head><meta charset="utf-8" /><title></title> <script type="text/javascript" src="jquery.min.js"></script> <script type="text/javascript" >

$( function(){ $ ("body").html ("<p>Ola Mundo !!</p>")

})

</script></head><body></body></html>

equivalente ao window.onload

Page 17: Introdução ao JQuery e AJAX

Hello World - 3 - Sem "innerHtml"

<!DOCTYPE html><html><head><meta charset="utf-8" /><title></title> <script type="text/javascript" src="jquery.min.js"></script> <script type="text/javascript" >$(document).ready(function(){ $ ("<p/>", {

text: "Ola Mundo !!"}).appendTo("body")

})</script></head><body></body></html>

1. Cria a tag <p>2. Atribui a ela o texto3. Adiciona a "body"

Page 18: Introdução ao JQuery e AJAX

Hello World - 3 - Sem "innerHtml"

<!DOCTYPE html><html><head><meta charset="utf-8" /><title></title> <script type="text/javascript" src="jquery.min.js"></script> <script type="text/javascript" >$(document).ready(function(){ $ ("<p/>", {

text: "Ola Mundo !!"}).appendTo("body")

})</script></head><body></body></html>

1. Cria a tag <p>2. Atribui a ela o texto3. Adiciona a "body"

Matado a ansiedade, vamos entender melhor isso ...

Page 19: Introdução ao JQuery e AJAX

Para quê ?

Page 20: Introdução ao JQuery e AJAX

Para quê ?

Produtividade = Poucas linhas de códigos

Page 21: Introdução ao JQuery e AJAX

Para quê ?

Produtividade = Poucas linhas de códigos

Cross browser

Page 22: Introdução ao JQuery e AJAX

Para quê ?

Produtividade – Poucas linhas de códigos

Cross browser

DOM

Page 23: Introdução ao JQuery e AJAX

Para quê ?

Produtividade – Poucas linhas de códigos

Cross browser

DOM CSS

Page 24: Introdução ao JQuery e AJAX

Para quê ?

Produtividade – Poucas linhas de códigos

Cross browser

DOMCSS

AJAX

Page 25: Introdução ao JQuery e AJAX

Para quê ?

Produtividade – Poucas linhas de códigos

Cross browserDOM

CSS

AJAX

PLUGINS

Page 26: Introdução ao JQuery e AJAX

Jquery

● Released Jan. 2006● Foco na manipulação de DOM● Suporte a Events, Ajax e Animações● Código sucinto, arquivos pequenos● Extensível via plugin● Cross browser (se comporta da mesma maneira

sobre diferentes browser)

Page 27: Introdução ao JQuery e AJAX

Ranking das bibliotecas JavaScript

Page 28: Introdução ao JQuery e AJAX

Jquery + Programação Funcional

JQuery foi desenvolvido usando muitas das suas características como linguagem de programação funcional

Funções como parâmetros

Funções como retorno

Page 29: Introdução ao JQuery e AJAX

Jquery + Programação Funcional

JQuery foi desenvolvido usando muitas das suas características como linguagem de programação funcional

Funções como parâmetros

Funções como retorno

Funções anônimas

Page 30: Introdução ao JQuery e AJAX

Jquery + Programação Funcional

JQuery foi desenvolvido usando muitas das suas características como linguagem de programação funcional

Funções como parâmetros

Funções como retorno

Funções anônimas

Closures

“Thank God for closures!”. John Resig

Page 31: Introdução ao JQuery e AJAX

Alguns slides a partir daqui foram baseados em:jQuery Essentials by Marc Grabanskihttp://marcgrabanski.com/presentations/jquery-essentials.pdf

Page 32: Introdução ao JQuery e AJAX

Mais fácil escrever do que códigos JavaScript puros.

Page 33: Introdução ao JQuery e AJAX

Ocultando divs com JavaScript e DOMdivs = document.getElementByTagName(‘div’);for (i = 0; i < divs.length; i++) { divs[i].style.display = ‘none’;}

Page 34: Introdução ao JQuery e AJAX

Ocultando divs com JavaScript e DOMdivs = document.getElementByTagName(‘div’);for (i = 0; i < divs.length; i++) { divs[i].style.display = ‘none’;}

Ocultando divs com JQuery$(“div”).hide();

1. Selecionava todos <div>2. Para cada um3. Mudava o estilo, css

Page 35: Introdução ao JQuery e AJAX

Ocultando divs com JavaScript e DOMdivs = document.getElementByTagName(‘div’);for (i = 0; i < divs.length; i++) { divs[i].style.display = ‘none’;}

Ocultando divs com JQuery$(“div”).hide();

Page 36: Introdução ao JQuery e AJAX

Filosofia JQuery

Page 37: Introdução ao JQuery e AJAX

Filosofia JQuery

#1. PROCURE algo no HTML

Page 38: Introdução ao JQuery e AJAX

Filosofia JQuery

#1. PROCURE algo no HTML

#2. FAÇA algo com ele

Page 39: Introdução ao JQuery e AJAX

PROCURE

$("div")

Page 40: Introdução ao JQuery e AJAX

PROCURE

$("div") Procurando elementos...

Page 41: Introdução ao JQuery e AJAX

Use o seletor $()

Page 42: Introdução ao JQuery e AJAX

Use o seletor $()

$(“#myId”)

Page 43: Introdução ao JQuery e AJAX

Use o seletor $()

$(“#myId”) $(“.myClass”)

Page 44: Introdução ao JQuery e AJAX

Use o seletor $()

$(“#myId”) $(“.myClass”)

Page 45: Introdução ao JQuery e AJAX

Use o seletor $()

$(“#myId”) $(“.myClass”) $(“table”)

Page 46: Introdução ao JQuery e AJAX

Exemplos de seletores

Page 47: Introdução ao JQuery e AJAX

Exemplos de seletores

$(“#content”) todos elementos com id content

Page 48: Introdução ao JQuery e AJAX

Exemplos de seletores

$(“#content”) todos elementos com id content

$(“li:first”) o primeiro item de uma lista

Page 49: Introdução ao JQuery e AJAX

Exemplos de seletores

$(“#content”) todos elementos com id content

$(“li:first”) o primeiro item de uma lista

$(“a[target=_blank]”) todos links onde target “_blank”

Page 50: Introdução ao JQuery e AJAX

Exemplos de seletores

$(“#content”) todos elementos com id content

$(“li:first”) o primeiro item de uma lista

$(“a[target=_blank]”) todos links onde target “_blank”

$(“form[id^=step]”) todos "forms" onde id começa com “step”

Page 51: Introdução ao JQuery e AJAX

Exemplos de seletores

$(“#content”) todos elementos com id content

$(“li:first”) o primeiro item de uma lista

$(“a[target=_blank]”) todos links onde target “_blank”

$(“form[id^=step]”) todos "forms" onde id começa com “step”

$("img", cell) todos as imagens dentro de cell

Page 52: Introdução ao JQuery e AJAX

Seleção com composição:

Page 53: Introdução ao JQuery e AJAX

$(“#myId, .myClass, table”)

Seleção com composição:

Page 54: Introdução ao JQuery e AJAX

Procure

$(“div”)

Page 55: Introdução ao JQuery e AJAX

Procure

$(“div”).hide()

Faça

Page 56: Introdução ao JQuery e AJAX

Vamos ver ....

teste_jquery_1.html

Page 57: Introdução ao JQuery e AJAX

Encadeamento

Page 58: Introdução ao JQuery e AJAX

Encadeamento

$("#div_1").addClass("redbox")

Page 59: Introdução ao JQuery e AJAX

Encadeamento

$("#div_1").addClass("redbox").fadeOut();

Page 60: Introdução ao JQuery e AJAX

Encadeamento

$("#div_1").addClass("redbox").fadeOut();

Seleção retorna um objeto, então podemos aplicá-las em outras consultas ou métodos.

Page 61: Introdução ao JQuery e AJAX

Encadeamento

$("#div_1").addClass("redbox").fadeOut();

Seleção retorna um objeto, então podemos aplicá-las em outras consultas ou métodos.

Testando .....

Page 62: Introdução ao JQuery e AJAX

Encadeamento

$('#content').find('h3').eq(2).html('o novo texto do terceiro h3!');

Page 63: Introdução ao JQuery e AJAX

Encadeamento

$('#content').find('h3').eq(2).html('o novo texto do terceiro h3!');

$('#content') .find('h3') .eq(2) .html('o novo texto do terceiro h3!');

Formatando

Page 64: Introdução ao JQuery e AJAX

Salvando seleções

var $divs = $('div');

Page 65: Introdução ao JQuery e AJAX

Salvando seleções

var $divs = $('div');$divs.addClass(“redbox”)

Page 66: Introdução ao JQuery e AJAX

Salvando seleções

var $divs = $('div');$divs.addClass(“redbox”)

O JQuery não salva as consultas, se for precisar do resultado dessa consulta, salve-a em uma variável

Page 67: Introdução ao JQuery e AJAX

Salvando seleções

var $divs = $('div');$divs.addClass(“redbox”)

Não existe nada especial no nome $divs, o $ é apenas uma notação para diferenciar o objetos JQuery

O JQuery não salva as consultas, se for precisar do resultado dessa consulta, salve-a em uma variável

Page 68: Introdução ao JQuery e AJAX

Checando o retorno de uma seleção

Uma seleção sempre retornara um objeto, então o teste a seguir será sempre verdadeiro:

if ($('div.foo')) { ... }

Page 69: Introdução ao JQuery e AJAX

Checando o retorno de uma seleção

Uma seleção sempre retornara um objeto, então o teste a seguir será sempre verdadeiro:

if ($('div.foo')) { ... }

Ao invés disso, testem o tamanho do objeto:

if ($('div.foo').length) { ... }

Page 70: Introdução ao JQuery e AJAX

Refinando & Filtrando Seleções

Page 71: Introdução ao JQuery e AJAX

Refinando & Filtrando Seleções

$('div.foo').has('p'); // o elemento div.foo que contém <p>'s

Page 72: Introdução ao JQuery e AJAX

Refinando & Filtrando Seleções

$('div.foo').has('p'); // o elemento div.foo que contém <p>'s

$('h1').not('.bar'); // elementos h1 que não têm a classe bar

Page 73: Introdução ao JQuery e AJAX

Refinando & Filtrando Seleções

$('div.foo').has('p'); // o elemento div.foo que contém <p>'s

$('h1').not('.bar'); // elementos h1 que não têm a classe bar

$('ul li').filter('.current'); // itens de listas não-ordenadas com a classe current

Page 74: Introdução ao JQuery e AJAX

Refinando & Filtrando Seleções

$('div.foo').has('p'); // o elemento div.foo que contém <p>'s

$('h1').not('.bar'); // elementos h1 que não têm a classe bar

$('ul li').filter('.current'); // itens de listas não-ordenadas com a classe current

$('ul li').first(); // somente o primeiro item da lista não ordenada

Page 75: Introdução ao JQuery e AJAX

Refinando & Filtrando Seleções

$('div.foo').has('p'); // o elemento div.foo que contém <p>'s

$('h1').not('.bar'); // elementos h1 que não têm a classe bar

$('ul li').filter('.current'); // itens de listas não-ordenadas com a classe current

$('ul li').first(); // somente o primeiro item da lista não ordenada

$('ul li').eq(5); // o sexto item da lista

Page 76: Introdução ao JQuery e AJAX

Refinando & Filtrando Seleções

$('div.foo').has('p'); // o elemento div.foo que contém <p>'s

$('h1').not('.bar'); // elementos h1 que não têm a classe bar

$('ul li').filter('.current'); // itens de listas não-ordenadas com a classe current

$('ul li').first(); // somente o primeiro item da lista não ordenada

$('ul li').eq(5); // o sexto item da lista

Oculte o primeiro item das listas do arquivo teste_jquery_1.html

Page 77: Introdução ao JQuery e AJAX

Seletores relacionados à formulários

:button Seleciona elementos do tipo <button>

:checkbox Seleciona inputs com type="checkbox"

:checked Seleciona inputs selecionados

:disabled Seleciona elementos de formulário desabilitados

:enabled Seleciona elementos de formulário habilitados

Page 78: Introdução ao JQuery e AJAX

Seletores relacionados à formulários

:input Seleciona <input>, <textarea>, e elementos <select>

:radio Selecionam inputs com type="radio"

:selected Seleciona inputs que estão selecionados

:submit Seleciona inputs com type="submit"

:text Seleciona inputs com type="text"...

Page 79: Introdução ao JQuery e AJAX

Um Método, Diferentes usos

Page 80: Introdução ao JQuery e AJAX

Um Método, Diferentes usos

$(...).html();

Page 81: Introdução ao JQuery e AJAX

Um Método, Diferentes usos

$(...).html();

$(...).html(“<p>hello</p>”);

Page 82: Introdução ao JQuery e AJAX

Um Método, Diferentes usos

$(...).html();

$(...).html(“<p>hello</p>”);

$(...).html(function(i){ return “<p>hello “ + i + “</p>”;});

Page 83: Introdução ao JQuery e AJAX

Um Método, Diferentes usos

$(...).html();

$(...).html(“<p>hello</p>”);

$(...).html(function(i){ return “<p>hello “ + i + “</p>”;}); Lembram da

sobrecarga ?

Este método é um exemplo de "sobrecarga".

Page 84: Introdução ao JQuery e AJAX

Getters & Setters

O jQuery “sobrecarrega” seus métodos, então o método usado para setar um valor geralmente tem o mesmonome do método usado para obter um valor

Page 85: Introdução ao JQuery e AJAX

Getters & Setters

O jQuery “sobrecarrega” seus métodos, então o método usado para setar um valor geralmente tem o mesmonome do método usado para obter um valor.

O método $.fn.html usado como setter$('h1').html('olá mundo');

Page 86: Introdução ao JQuery e AJAX

Getters & Setters

O jQuery “sobrecarrega” seus métodos, então o método usado para setar um valor geralmente tem o mesmonome do método usado para obter um valor.

O método $.fn.html usado como setter$('h1').html('olá mundo');

O método html usado como getter$('h1').html();

Page 87: Introdução ao JQuery e AJAX

JQuery MétodosMovendoappend(), appendTo(), before(), after(),

Atributoscss(), attr(), html(), val(), addClass()

Eventosbind(), trigger(), unbind(), live(), click()

Travessiafind(), is(), prevAll(), next(), hasClass()

Efeitosshow(), fadeOut(), toggle(), animate()

Ajaxget(), getJSON(), post(), ajax(), load()

Page 88: Introdução ao JQuery e AJAX

Método $()

Page 89: Introdução ao JQuery e AJAX

Método $()

Podemos passar uma função para o método $(), que será executada após o HTML ser carregado.

Page 90: Introdução ao JQuery e AJAX

Método $()

Podemos passar uma função para o método $(), que será executada após o HTML ser carregado.

$(function(){

});

Page 91: Introdução ao JQuery e AJAX

Método $()

Podemos passar uma função para o método $(), que será executada após o HTML ser carregado.

$(function(){ // código será executado após o carregamento do DOM });

Page 92: Introdução ao JQuery e AJAX

Método $()

Podemos passar uma função para o método $(), que será executada após o HTML ser carregado.

$(function(){ // código será executado após o carregamento do DOM });

Nota: Esse é um atalho para:

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

Page 93: Introdução ao JQuery e AJAX

Método $()

Usando funções anônimas:

$(function() { alert('pronto!'); });

Page 94: Introdução ao JQuery e AJAX

Método $()

Usando funções anônimas:

$(function() { alert('pronto!'); });

Função nomeada

f = function () {alert('pronto!'); }$(f);

Page 95: Introdução ao JQuery e AJAX

Movendo elementos

Pegue um elemento com ID foo e adicione algum HTML.

$(“#foo”)

<html><body><div>jQuery</div> <div id=”foo”>example</div></body></html>

Page 96: Introdução ao JQuery e AJAX

Movendo elementos

Pegue um elemento com ID foo e adicione algum HTML.

$(“#foo”).append(“<p>test</p>”);

<html><body><div>jQuery</div> <div id=”foo”>example</div></body></html>

Page 97: Introdução ao JQuery e AJAX

Movendo elementos

Pegue um elemento com ID foo e adicione algum HTML.

$(“#foo”).append(“<p>test</p>”);

<html><body><div>jQuery</div> <div id=”foo”>example<p>test</p></div></body></html>

Page 98: Introdução ao JQuery e AJAX

Movendo elementos

Move parágrafos para o elemento com id “foo”

$(“p”)

<html><body><div>jQuery <p>moving</p> <p>paragraphs</p></div><div id=”foo”>example</div></body></html>

Page 99: Introdução ao JQuery e AJAX

Movendo elementos

Move parágrafos para o elemento com id “foo”

$(“p”).appendTo(“#foo”);

<html><body><div>jQuery <p>moving</p> <p>paragraphs</p></div><div id=”foo”>example</div></body></html>

Page 100: Introdução ao JQuery e AJAX

Movendo elementos

Move parágrafos para o elemento com id “foo”

$(“p”).appendTo(“#foo”);

<html><body><div>jQuery</div><div id=”foo”>example <p>moving</p> <p>paragraphs</p></div></body></html>

Page 101: Introdução ao JQuery e AJAX

Copiando elementos

Copiando parágrafos para o elemento com id “foo”

$(“p”)

<html><body><div>jQuery <p>moving</p> <p>paragraphs</p></div><div id=”foo”>example</div></body></html>

Page 102: Introdução ao JQuery e AJAX

Copiando elementos

Copiando parágrafos para o elemento com id “foo”

$(“p”).clone()

<html><body><div>jQuery <p>moving</p> <p>paragraphs</p></div><div id=”foo”>example</div></body></html>

Page 103: Introdução ao JQuery e AJAX

Copiando elementos

Copiando parágrafos para o elemento com id “foo”

$(“p”).clone().appendTo(“#foo”);

<html><body><div>jQuery <p>moving</p> <p>paragraphs</p></div><div id=”foo”>example</div></body></html>

Page 104: Introdução ao JQuery e AJAX

Copiando elementos

Copiando parágrafos para o elemento com id “foo”

$(“p”).clone().appendTo(“#foo”);

<html><body><div>jQuery <p>moving</p> <p>paragraphs</p></div><div id=”foo”>example <p>moving</p> <p>paragraphs</p></div></body></html>

Page 105: Introdução ao JQuery e AJAX

Criando elementos

Page 106: Introdução ao JQuery e AJAX

Criando elementos

Copiando parágrafos para o elemento com id “foo”

$(“<p>”, {text:"teste"})

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

Page 107: Introdução ao JQuery e AJAX

Criando elementos

Copiando parágrafos para o elemento com id “foo”

$(“<p>”, {text:"teste"}).appendTo(“#foo”);

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

Page 108: Introdução ao JQuery e AJAX

Criando elementos

Copiando parágrafos para o elemento com id “foo”

$(“<p>”, {text:"teste"}).appendTo(“#foo”);

<html><body><div id=”foo”><p>teste</p> </div></body></html>

Page 109: Introdução ao JQuery e AJAX

Atributos

Page 110: Introdução ao JQuery e AJAX

Atributos

Get

.attr(‘id’)

Page 111: Introdução ao JQuery e AJAX

Atributos

Get

.attr(‘id’)

.html()

Page 112: Introdução ao JQuery e AJAX

Atributos

Get

.attr(‘id’)

.html()

.css(“fontSize”)

Page 113: Introdução ao JQuery e AJAX

Atributos

Get

.attr(‘id’)

.html()

.css(“fontSize”)

.width()

Set

.attr(‘id’, ‘foo’)

Page 114: Introdução ao JQuery e AJAX

Atributos

Get

.attr(‘id’)

.html()

.css(“fontSize”)

.width()

Set

.attr(‘id’, ‘foo’)

.html(“<p>hi</p>”)

Page 115: Introdução ao JQuery e AJAX

Atributos

Get

.attr(‘id’)

.html()

.css(“fontSize”)

.width()

Set

.attr(‘id’, ‘foo’)

.html(“<p>hi</p>”)

.css(“fontSize”, “100px”)

Page 116: Introdução ao JQuery e AJAX

Atributos

Get

.attr(‘id’)

.html()

.css(“fontSize”)

.width()

Set

.attr(‘id’, ‘foo’)

.html(“<p>hi</p>”)

.css(“fontSize”, “100px”)

.width(60)

Page 117: Introdução ao JQuery e AJAX

Atributos

Get

.attr(‘id’)

.html()

.css(“fontSize”)

.width()

Set

.attr(‘id’, ‘foo’)

.html(“<p>hi</p>”)

.css(“fontSize”, “100px”)

.width(60)

Largura do primeiro elemento

Page 118: Introdução ao JQuery e AJAX

Atributos

Get

.attr(‘id’)

.html()

.css(“fontSize”)

.width()

Set

.attr(‘id’, ‘foo’)

.html(“<p>hi</p>”)

.css(“fontSize”, “100px”)

.width(60)

Largura do primeiro elemento

Largura de todos elemento

Page 119: Introdução ao JQuery e AJAX

Atributos

Page 120: Introdução ao JQuery e AJAX

Atributos

Seta a borda para 1px black

$(...).css(“border”, “1px solid black”);

Page 121: Introdução ao JQuery e AJAX

Atributos

Seta a borda para 1px black

$(...).css(“border”, “1px solid black”);

Seta varias propriedades CSS.$(...).css({ “background”: “yellow”, “height”: “400px”});

Page 122: Introdução ao JQuery e AJAX

Atributos

Seta a borda para 1px black

$(...).css(“border”, “1px solid black”);

Seta varias propriedades CSS.$(...).css({ “background”: “yellow”, “height”: “400px”});

Nota: $.fn.css é útil, mas, ele geralmente deve ser evitado como um setter. Pois você não quer informação de apresentação no seu JavaScript. Escreva regras CSS para classes que descrevam os vários estados visuais, e então mude a classe no elemento que você quer afetar.

Page 123: Introdução ao JQuery e AJAX

Atributos

Trabalhando com classes

$h1.addClass('big');

$h1.removeClass('big');

Page 124: Introdução ao JQuery e AJAX

Atributos

Trabalhando com classes

$h1.addClass('big');

$h1.removeClass('big');

$h1.toggleClass('big');Adiciona se ainda não foi adiciona e remove caso contrário.

Page 125: Introdução ao JQuery e AJAX

Atributos

Trabalhando com classes

$h1.addClass('big');

$h1.removeClass('big');

$h1.toggleClass('big');

if ($h1.hasClass('big')) { ... }

Page 126: Introdução ao JQuery e AJAX

Atributos

Mude HTML com um novo parágrafo.

$(...).html(“<p>I’m new</p>”);

Page 127: Introdução ao JQuery e AJAX

Atributos

Mude HTML com um novo parágrafo.

$(...).html(“<p>I’m new</p>”);

<div>whatever</div> muda para:<div><p>I’m new</p></div>

Page 128: Introdução ao JQuery e AJAX

Atributos

Mude HTML com um novo parágrafo.

$(...).html(“<p>I’m new</p>”);

<div>whatever</div> muda para:<div><p>I’m new</p></div>

Seta o atributo “checked” para checked.$(“:checkbox”).attr(“checked”,”checked”);

Page 129: Introdução ao JQuery e AJAX

Atributos

Mude HTML com um novo parágrafo.

$(...).html(“<p>I’m new</p>”);

<div>whatever</div> muda para:<div><p>I’m new</p></div>

Seta o atributo “checked” para checked.$(“:checkbox”).attr(“checked”,”checked”);

Seta o value para 3.$(...).val(“3”);

Page 130: Introdução ao JQuery e AJAX

Atributos

Mude HTML com um novo parágrafo.

$(...).html(“<p>I’m new</p>”);

<div>whatever</div> muda para:<div><p>I’m new</p></div>

Seta o atributo “checked” para checked.$(“:checkbox”).attr(“checked”,”checked”);

Seta o value para 3.$(...).val(“3”);

Usado para pegar um valor de um elemento de um formulário. Ex. text.

Page 131: Introdução ao JQuery e AJAX

Atributos

Mude HTML com um novo parágrafo.

$(...).html(“<p>I’m new</p>”);

<div>whatever</div> muda para:<div><p>I’m new</p></div>

Seta o atributo “checked” para checked.$(“:checkbox”).attr(“checked”,”checked”);

Seta o value para 3.$(...).val(“3”);

Pega o valor.$(...).val();

Page 132: Introdução ao JQuery e AJAX

Eventos

Page 133: Introdução ao JQuery e AJAX

Eventos

Quando o botão for clicado, faça algo.

$(“button”).click(function(){ facaAlgo();});

Page 134: Introdução ao JQuery e AJAX

Eventos

Quando o botão for clicado, faça algo.

$(“button”).click(function(){ facaAlgo();});

Usando o método bind:

$("button").bind('click', function() { facaAlgo();});

Page 135: Introdução ao JQuery e AJAX

Eventos

Hover, funções para o mouse in e mouseout

$("span").hover( function () { $(this).css ("color", "red"); }, function () { $(this).css ("color", "black"); })

Page 136: Introdução ao JQuery e AJAX

Funções utilitárias

.trim

$.each

Remove espaços em branco à esquerda e à direita.

$.trim(" muitos espaços em branco extras ");// returns "muitos espaços em branco extras"

Itera sobre arrays e objetos.$.each([ 'foo', 'bar', 'baz' ], function(idx, val) {console.log('elemento ' + idx + 'é ' + val);});$.each({ foo : 'bar', baz : 'bim' }, function(k, v) {console.log(k + ' : ' + v);});

Page 137: Introdução ao JQuery e AJAX

Funções utilitárias

$.inArray var meuArray = [ 1, 2, 3, 5 ];if ($.inArray(4, meuArray) !== -1) {console.log('encontrei!');}

Page 138: Introdução ao JQuery e AJAX

Exercício 1

Baixem o arquivo Diga_incompleto, e insiram os códigos que permitirá o seguinte comportamento.

Page 139: Introdução ao JQuery e AJAX

Exercício 2

Gerar tabela dinamicamente

Page 140: Introdução ao JQuery e AJAX

Exercício e

Façam uma calculadora usando o que foi discutido até aqui. Obs: para mostrar ou ocultar um objeto, use show() e hide ()

Caso o usuário entre com valores inválidos

Page 141: Introdução ao JQuery e AJAX

JQuery Parte 2

Page 142: Introdução ao JQuery e AJAX

JQuery MétodosMovendoappend(), appendTo(), before(), after(),

Atributoscss(), attr(), html(), val(), addClass()

Eventosbind(), trigger(), unbind(), live(), click()

Travessiafind(), is(), prevAll(), next(), hasClass()

Efeitosshow(), fadeOut(), toggle(), animate()

Ajaxget(), getJSON(), post(), ajax(), load()

Page 143: Introdução ao JQuery e AJAX

JQuery MétodosMovendoappend(), appendTo(), before(), after(),

Atributoscss(), attr(), html(), val(), addClass()

Eventosbind(), trigger(), unbind(), live(), click()

Travessiafind(), is(), prevAll(), next(), hasClass()

Efeitosshow(), fadeOut(), toggle(), animate()

Ajaxget(), getJSON(), post(), ajax(), load()

Page 144: Introdução ao JQuery e AJAX

Travessia

Page 145: Introdução ao JQuery e AJAX

Travessia

Uma vez que você tem uma seleção do jQuery, você pode encontrar outros elementos usando sua seleçãocomo ponto de início.

Page 146: Introdução ao JQuery e AJAX

Travessia

Uma vez que você tem uma seleção do jQuery, você pode encontrar outros elementos usando sua seleçãocomo ponto de início.

$('h1').prevAll();$('h1').next('p');$('div:visible').parent();$('input[name=first_name]').closest('form');$('#myList').children();$('li.selected').siblings();$('h1').find('p');

Page 147: Introdução ao JQuery e AJAX

Travessia

Uma vez que você tem uma seleção do jQuery, você pode encontrar outros elementos usando sua seleçãocomo ponto de início.

$('h1').prevAll();$('h1').next('p');$('div:visible').parent();$('input[name=first_name]').closest('form');$('#myList').children();$('li.selected').siblings();$('h1').find('p');

Page 148: Introdução ao JQuery e AJAX

Travessia

Pegue as celulas anteriores a #myCell.

$(“#myCell”)<html><body><table><tr><td></td><td></td><td id=”myCell”></td><td></td></tr></table></body>

Page 149: Introdução ao JQuery e AJAX

Travessia

Pegue as celulas anteriores a #myCell.

$(“#myCell”).prevAll()<html><body><table><tr><td></td><td></td><td id=”myCell”></td><td></td></tr></table></body>

Page 150: Introdução ao JQuery e AJAX

Travessia

Pegue as celulas anteriores a #myCell.

$(“#myCell”).prevAll().andSelf();<html><body><table><tr><td></td><td></td><td id=”myCell”></td><td></td></tr></table></body>

Page 151: Introdução ao JQuery e AJAX

Travessia

Pegue as celulas anteriores a #myCell.

$(“#myCell”)<html><body><table><tr><td></td><td></td><td id=”myCell”></td><td></td></tr></table></body>

Page 152: Introdução ao JQuery e AJAX

Travessia

Pegue as celulas anteriores a #myCell.

$(“#myCell”).siblings();<html><body><table><tr><td></td><td></td><td id=”myCell”></td><td></td></tr></table></body>

Page 153: Introdução ao JQuery e AJAX

Travessia

Pegue as celulas anteriores a #myCell.

$(“#myCell”).siblings().andSelf();<html><body><table><tr><td></td><td></td><td id=”myCell”></td><td></td></tr></table></body>

Page 154: Introdução ao JQuery e AJAX

Travessia

Pegue as celulas anteriores a #myCell.

$(“#myCell”)<html><body><table><tr><td></td><td></td><td id=”myCell”></td><td></td></tr></table></body>

Page 155: Introdução ao JQuery e AJAX

Travessia

Pegue as celulas anteriores a #myCell.

$(“#myCell”).parent();<html><body><table><tr><td></td><td></td><td id=”myCell”></td><td></td></tr></table></body>

Page 156: Introdução ao JQuery e AJAX

Travessia

Pegue as celulas anteriores a #myCell.

$(“table”);<html><body><table><tr><td></td><td></td><td id=”myCell”></td><td></td></tr></table></body>

Page 157: Introdução ao JQuery e AJAX

Travessia

Pegue as celulas anteriores a #myCell.

$(“table”).find ("td");<html><body><table><tr><td></td><td></td><td id=”myCell”></td><td></td></tr></table></body>

Page 158: Introdução ao JQuery e AJAX

Efeitos/Animação

Page 159: Introdução ao JQuery e AJAX

Efeitos/Animação

Tipos de efeitos

Page 160: Introdução ao JQuery e AJAX

Efeitos/Animação

Tipos de efeitos

#1. Hide e Show

Page 161: Introdução ao JQuery e AJAX

Efeitos/Animação

Tipos de efeitos

#1. Hide e Show

#2. Fade In e Out

Page 162: Introdução ao JQuery e AJAX

Efeitos/Animação

Tipos de efeitos

#1. Hide e Show

#2. Fade In e Out

#3. Slide Up e Down

Page 163: Introdução ao JQuery e AJAX

Efeitos/Animação

Hide e show

$(...).click(function(){ $(...).hide();});

Page 164: Introdução ao JQuery e AJAX

Efeitos/Animação

Hide e show

$(...).click(function(){ $(...).hide();});

$(...).hide("slow"); ou $(...).hide(5000);

Page 165: Introdução ao JQuery e AJAX

Efeitos/Animação

Hide e show

$(...).click(function(){ $(...).hide();});

$(...).hide("slow"); ou $(...).hide(5000);

$(...).show() $(...).show("slow") $(...).show(500);

Page 166: Introdução ao JQuery e AJAX

Efeitos/Animação

Para cada click, slide up / slide down um elemento

$(...).click(function(){ $(...).slideToggle();});

Page 167: Introdução ao JQuery e AJAX

Efeitos/Animação

Para cada click, slide up / slide down um elemento

$(...).click(function(){ $(...).slideToggle();});

Page 168: Introdução ao JQuery e AJAX

Efeitos/Animação

Para cada click, slide up / slide down um elemento

$(...).click(function(){ $(...).slideToggle();});

Animar elementos é alterar a apresentação, atributos CSS. Essa animação irá durar 1 segundo. $(...).animate({ "fontSize": "400%" }, 1000);

Page 169: Introdução ao JQuery e AJAX

Efeitos/Animação

Para cada click, slide up / slide down um elemento

$(...).click(function(){ $(...).slideToggle();});

Animar elementos é alterar a apresentação, atributos CSS. Essa animação irá durar 1 segundo. $(...).animate({ "fontSize": "400%" }, 1000);

Fade to 30% de opacidade$(...).fadeTo(500, 0.3);

Page 170: Introdução ao JQuery e AJAX

Efeitos/Animação

$.fn.show Mostra o elemento selecionado.

$.fn.hide Esconde o elemente selecionado.

$.fn.fadeIn Anima a opacidade dos elementos selecionados para 100%.

$.fn.fadeOut Anima a opacidade dos elementos selecionados para 0%.

Page 171: Introdução ao JQuery e AJAX

Efeitos/Animação

$.fn.slideDown Mostra os elementos selecionados com um deslizamento vertical.

$.fn.slideUp Esconde os elementos selecionados com um deslizamento vertical.

$.fn.slideToggle Mostra ou esconde os elementos selecionados com um deslizamento vertical, dependendo se os elementos atualmente estão visíveis.

Page 172: Introdução ao JQuery e AJAX

Efeitos/Animação

Experimentem os métodos com o código abaixo...<button id="b1">Click</button><p id="p1">ANIMADO</p>...

Page 173: Introdução ao JQuery e AJAX

Efeitos/Animação

Usem os recursos de animação para mostrar e ocultar as mensagens de erro da calculadora.

Page 174: Introdução ao JQuery e AJAX

Extendendo JQuery

Page 175: Introdução ao JQuery e AJAX

Plugins

$.fn.OlaMundo = function(){return this.each(function(){ // faça algo com a seleção});}

Page 176: Introdução ao JQuery e AJAX

Plugins

$.fn.OlaMundo = function(){return this.each(function(){ $(this).html("Plugin Ola Mundo");});}

$(“div”)<html><body><div></div><div></div></body></html>

Page 177: Introdução ao JQuery e AJAX

Plugins

$.fn.OlaMundo = function(){return this.each(function(){ $(this).html("Plugin Ola Mundo");});}

$(“div”).OlaMundo();<html><body><div>Plugin Ola Mundo</div><div>Plugin Ola Mundo</div></body></html>

Page 178: Introdução ao JQuery e AJAX

Plugins

Existem diversos plugins, com diferentes objetivos.

http://plugins.jquery.com/

Vocês podem fazer o seu próprio ou estender os já existentes.

Page 179: Introdução ao JQuery e AJAX

Exercício

Façam um programa que realce uma seleção:

texto a realçar

$("span").realce()

texto a realçar

Page 180: Introdução ao JQuery e AJAX

Mais exercicios

Baixem o jogo quebra cabeça e mapeiem o seu código para JQuery:

Page 181: Introdução ao JQuery e AJAX

AJAX

Page 182: Introdução ao JQuery e AJAX

Modelo classico

Page 183: Introdução ao JQuery e AJAX

AJAX

Page 184: Introdução ao JQuery e AJAX

O que é Ajax ?

Assyncronous

Page 185: Introdução ao JQuery e AJAX

O que é Ajax ?

Assyncronous JavaScript

Page 186: Introdução ao JQuery e AJAX

O que é Ajax ?

Assyncronous JavaScript And

XML

Page 187: Introdução ao JQuery e AJAX

O que é Ajax ?

Assyncronous

JavaScript And

XML

Page 188: Introdução ao JQuery e AJAX

O que é Ajax ?

Assyncronous

JavaScript And

XML+ XHTML+ JSON+ CSS

Page 189: Introdução ao JQuery e AJAX

O que é AJAX ?

Não é uma linguagem

Page 190: Introdução ao JQuery e AJAX

O que é AJAX ?

Não é uma linguagem

Uso de tecnologias já existentes

Page 191: Introdução ao JQuery e AJAX

O que é AJAX ?

Não é uma linguagem

Uso de tecnologias já existentes

XHtmllRequest

Page 192: Introdução ao JQuery e AJAX

O que é AJAX ?

Não é uma linguagem

Uso de tecnologias já existentes

XHtmllRequest + JavaScript

Page 193: Introdução ao JQuery e AJAX

O que é AJAX ?

Não é uma linguagem

Uso de tecnologias já existentes

XHtmllRequest + JavaScript + DOM

Page 194: Introdução ao JQuery e AJAX

Meu primeiro AJAX

Criar uma requisição:

function GetXmlHttpObject() {var xmlHttp=null;try {// Firefox, Opera 8.0+, SafarixmlHttp=new XMLHttpRequest();} catch (e) {// Internet Explorer try {xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}}return xmlHttp;}

Page 195: Introdução ao JQuery e AJAX

Meu primeiro AJAX

Criar uma requisição:

function GetXmlHttpObject() {var xmlHttp=null;try {// Firefox, Opera 8.0+, SafarixmlHttp=new XMLHttpRequest();} catch (e) {// Internet Explorer try {xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}}return xmlHttp;}

Só existo por causa do IE

Page 196: Introdução ao JQuery e AJAX

Meu primeiro AJAX

Função que é chamado após a requisição for concluída. Callback.

function stateChanged() {if (xmlHttp.readyState==4) {document.getElementById("a1").innerHTML = xmlHttp.responseText;}}

Page 197: Introdução ao JQuery e AJAX

Meu primeiro AJAX

Função que "monta" a requisição.

function olamundo() {xmlHttp=GetXmlHttpObject();if (xmlHttp==null) {alert ("Your browser does not support AJAX!");return;}xmlHttp.onreadystatechange=stateChanged;xmlHttp.open("GET","ajax_test.htm",true);xmlHttp.send(null);}

window.onload = olamundo()

Page 198: Introdução ao JQuery e AJAX

Muito Complicado ?

Page 199: Introdução ao JQuery e AJAX

Ajax no JQuery

Page 200: Introdução ao JQuery e AJAX

Lembram do Hello World do JQuery ?

$ ("#a1")

</html></head><body><div id="a1"></div> </body></html>

Page 201: Introdução ao JQuery e AJAX

Lembram do Hello World do JQuery ?

$ ("#a1").html ("<p>Ola Mundo</p>")

</html></head><body><div id="a1"><p>Ola Mundo</p></div> </body></html>

Page 202: Introdução ao JQuery e AJAX

Hello World Ajax - JQuery

Dado uma pagina ajax_test.htm

<p>Ola mundo</p>

</html></head><body><div id="a1"></div> </body></html>

Page 203: Introdução ao JQuery e AJAX

Hello World Ajax - JQuery

Dado uma pagina ajax_test.htm

$.ajax({ url: "ajax_test.htm", success: function(response){ $("#a1").html(response); }})

<p>Ola mundo</p>

</html></head><body><div id="a1"><p>Ola Mundo</p></div> </body></html>

Page 204: Introdução ao JQuery e AJAX

Hello World Ajax - JQuery - V 2

Dado uma pagina ajax_test.htm

$.get("ajax_test.htm", function (response) { $("#a1").html(response); })

<p>Ola mundo</p>

</html></head><body><div id="a1"><p>Ola Mundo</p></div> </body></html>

Page 205: Introdução ao JQuery e AJAX

Enviando dados para o servidor

Calculadora no servidor

<?php $n1 = $_REQUEST['n1']; $n2 = $_REQUEST['n2']; echo $n1+$n2;?>

Page 206: Introdução ao JQuery e AJAX

Enviando dados para o servidor

Calculadora no servidor

<?php $n1 = $_REQUEST['n1']; $n2 = $_REQUEST['n2']; echo $n1+$n2;?>

$(function () { $("#button").click ( function () { $.get("calc.php", {n1: $("#n1").val(), n2: $("#n2").val() }, function (response) { $("#res").html(response); }) }) });

Page 207: Introdução ao JQuery e AJAX

Recebendo dados do servidor: JSONCalculadora no servidor

<?php$n1 = $_REQUEST['n1'];$n2 = $_REQUEST['n2'];$res = array ( 'res' => $n1+$n2,);$output = json_encode($res);echo $output;

$("#button").click ( function () {$.getJSON("calc_json.php", {n1: $("#n1").val(), n2: $("#n2").val() }, function (response) { $("#res").html(response.res) })})});

Page 208: Introdução ao JQuery e AJAX

Recebendo e enviando: JSONCalculadora no servidor<?php$data = json_decode ($_REQUEST['data'], true);$res = array ( 'res' => $data['n1'] + $data['n2']);$output = json_encode($res);echo $output ?>

$("#button").click ( function () {$.getJSON("calc_json2.php", {data: JSON.stringify ({n1:$("#n1").val(), n2:$("#n2").val() }) }, function (response) {$("#res").html(response.res)})})

Page 209: Introdução ao JQuery e AJAX

É só isso ?

Page 210: Introdução ao JQuery e AJAX

É só isso ?YES. Agora é JavaScript e criatividade.

Page 211: Introdução ao JQuery e AJAX

É só isso ?YES. Agora é JavaScript e criatividade.

No final da aula de PHP, tem outro exemplo de ajax com o php.