SlideShare uma empresa Scribd logo
André Willik Valenti

    Dextra Sistemas
 Biblioteca   JavaScript

 Cross-browser(IE 6.0+, FF 2.0+, Safari
 3.0+, Opera 9.0+, Chrome)

 MUITAS   funcionalidades
 Manipulação   de DOM
 Animações
 Utilitários
          (ex: AJAX)
 Compatibilidade entre navegadores
 Etc.
 Simplicidade
  • Tudo numa linha de código

 Selecionar   e manipular coisas
  • “Pegue tais elementos e faça tal coisa”

 Um   ou muitos: tanto faz
  • Se funciona pra um, funciona pra muitos

 Diga   exatamente o que quer fazer
  • Foco em “o que”, não em “como”
 Produtivo


 Intuitivo


 Bem   documentado

 Extensível
 HTML
  • <script src=“jquery-1.6.1.min.js”></script>

 Função    jQuery
  • jQuery('seletor-css').algumMetodo()


 Atalho:   $
  • $('seletor-css').algumMetodo()
 Modo   no conflict
 • Evita conflito do $ com outras bibliotecas
 • $.noConflict()
 HTML
  Nome:     <input id="nome" />
  CPF:      <input id="cpf" class="numerico" />
  Idade:    <input id="idade" class="numerico" />
  Cidade:   <input id="cidade" />

 jQuery
  • $('input')  4 elementos
  • $('input.numerico')  2 elementos
  • $('input#cpf')  1 elemento
 Um ou muitos
  • $('input#cpf').remove()
     Remove 1 elemento

  • $('input.numerico').remove()
     Remove 2 elementos

  • $('input').remove()
     Remove 4 elementos

  • Se funciona pra um, funciona pra muitos
  • (alguns métodos operam somente em um mesmo)
 Transformações      no documento HTML
 • Atributos (id, value, class, disabled, style etc.)
 • Elementos (adicionar, remover, mover, copiar)
 Vamos   pegar o último exemplo:
 • $('input#cpf')

 Ou   simplesmente...
 • $('#cpf')
 Recuperar      atributo:
  • $('#cpf').attr('id')  'cpf'

 Alterar   atributo:
  • $('#cpf').attr('id', 'novo-valor')

 Remover      atributo:
  • $('#cpf').removeAttr('disabled')
 Recuperar/alterar       atributo value:
  • $('#cpf').attr('value')  valor digitado
  • $('#cpf').attr('value', '123.456.789-00')

 Atalho:
  • $('#cpf').val()  valor digitado
  • $('#cpf').val('123.456.789-00')
 Alterar   estilo:
  • $('#cpf'). attr('style', 'font-weigth: bold')

 Atalho:
  • $('#cpf').css('font-weight', 'bold')
  • $('#cpf').css('font-weight')  'bold'
 Recuperar/alterar       classe(s) :
  • $('#cpf').attr('class')  'numerico'
  • $('#cpf').attr('class', 'campo-cpf')

 Atalhos:
  • $('#cpf').hasClass('numerico')
  • $('#cpf').addClass('campo-cpf')
  • $('#cpf').removeClass('campo-cpf')
 Esconder/exibir        elemento:
  • $('#cpf').css('display', 'none')
  • $('#cpf').css('display', 'inline') // ou seria block?


E   pra alternar a exibição?
  • Tem que ver se está sendo exibido
  • Se está, esconde
  • Se não está, exibe
 Tentativa   1.0: css
  • if ($('#cpf').css('display') == 'none') {
     $('#cpf').css('display', 'inline'); // ou block?
   } else {
     $('#cpf').css('display', 'none');
   }
 Tentativa    2.0: add/removeClass
  • .escondido {
      display: none;
    }

  • if ($('#cpf').hasClass('escondido')) {
     $('#cpf').removeClass('escondido');
   } else {
     $('#cpf').addClass('escondido');
   }
 Tentativa    2.1: toggleClass
  • .escondido {
      display: none;
    }

  • $('#cpf').toggleClass('escondido');
 Atalhos:
  • $('#cpf').hide()
  • $('#cpf').show()


E   por que não...
  • $('#cpf').toggle()
  • Aí sim !
 Vai   recuperar/alterar valor?
  • val

 Vai   recuperar/alterar estilo?
  • css

 Vai   recuperar/alterar atributos gerais?
  • attr

 Vai   remover atributos?
  • removeAttr
 Quer   checar existência de classe?
  • hasClass

 Quer   adicionar classe?
  • addClass

 Quer   remover classe?
  • removeClass

 Quer   alternar classe?
  • toggleClass
 Exibir   elemento?
  • show


 Ocultar    elemento?
  • hide


 Alternar   exibição de elemento?
  • toggle
 Seletores
 Um  ou muitos
 Atributos
  • attr
  • val
  • class
  • hide/show/toggle
 Métodos   para:
 • Adicionar elementos HTML ou texto
 • Remover elementos HTML

 Exemplos   de aplicação:
 • Alterar uma tabela
 • Criar novas seções na página
 prepend   / append
 • Acrescentam conteúdo a um elemento
 • Exemplo:
    <table><tr><td> 2 </td> <td> 3
     </td></tr></table>
    $('table tr').prepend('<td> 1 </td>')
    $('table tr').append('<td> 4 </td>')
 remove
 • Remove elementos do DOM
 • $('table').remove()

 remove   / hide
 • hide() apenas esconde, usando display: none
 • remove() efetivamente remove do DOM
 prepend / append
 remove / hide
 Métodos
 • fadeOut, fadeIn, fadeToggle
 • slideUp, slideDown, slideToggle
 • toggle

 Tempo     em milissegundos, 'fast' ou 'slow'
 • 'fast'  200ms
 • 'slow'  600ms
 fade
 slide
 toggle
 Pseudoclasses      CSS
  • :first / :last
  • :odd / :even
  • :checked
  • :enabled / :disabled
  • :has('seletor-filhos')
  • :contains('string-conteúdo')
  • Etc.
 add
  • $('table#resultados').add('div#topo').remove()


 Atalho
  • $('table#resultados, div#topo').remove()
 children
  • $('table').children()      // thead e tbody
  • $('table tbody').children()      // tr's
  • $('table tbody').children('tr.selecionado')

 find
  • $('table').find('.selecionado')
  • $('div#minha-div').find('span#meu-span')
   parent
    • Pai (elemento imediatamente acima)

   parents
    • Todos os ancestrais (pai, avô etc.)

   siblings
    • Irmãos

   E dá para filtrar em todos eles!
    • $('span').parent('.selecionado')
    • $('span').parents('fieldset')
    • $('table tr td#meu-td').siblings('.inativo')
 closest
  • Próprio elemento ou ancestral mais próximo
  • $('div#minha-div').closest('.minha-classe')

 filter
  • Filtra um objeto jQuery
  • Similar à filtragem com children, parents etc.
  • $('div, p, span, br').filter('.remover').remove()
 bind
  • $('input:text').bind('onchange', function() {
        alert('Elemento alterado: ' + this);
   })

 Atalho
  • $('input:text').change(function() {...});
 Atalhos
  • onchange  change
  • onclick  click
  • onfocus  focus
  • onblur  blur
  • onselect  select
  • onsubmit  submit
  • ...
 ready
  • Disparado quando elemento foi carregado
  • $('div#principal').ready(function() {...})
  • $(document).ready(function() {...})

 Atalho
  • $(function() {...})   // Aplica ao document
 Vantagens
 • Cross-browser
 • Acumula eventos
 • Permite desativá-los facilmente
 Com   jQuery:
 • $('input#meu-input').change(funcao1);
 • $('input#meu-input').change(funcao2);
 • $('input#meu-input').change(funcao3);

 Cansou   dos eventos?
 • $('input#meu-input').unbind();
 • Afeta apenas os eventos criados com jQuery
 $.trim
  • Remove espaços sobressalentes (cross-
   browser)

 $.browser
  • Nome e versão do navegador

 $.inArray(elemento,    vetor)
  • Procura posição do elemento no vetor
 AJAX
 • $.ajax
 • $.get
 • $.post
 $.ajax(url   [, settings])

 $.ajax('/usuarios',   {
       type: 'PUT',
       data: { nome: 'Joao', idade: '20'},
       success: function() {...},
       error: function() {...};
 });
 $.ajax(url   [, settings])
 $.ajax('/usuarios',   {
       type: 'PUT',
       data: { nome: 'Joao', idade: '20'},
       statusCode: {
             200: function() {
                   alert('OK');
             },
             404 : function() { ... }
       }
 });
 $.get(url   [, data] [, success])

 $.get('usuarios/index.html',
 function(result) { alert(result); });
 $.post(url   [, data] [, success])

 var
    joao = { nome: 'Joao', idade: '20' };
 $.post('usuarios/new', joao,
              funcaoTratarAjax);
 .each(function(index,           element) { })
  • $('input.valores').each(function(i, el) {
        alert('Índice: ' + i + ', elemento: ' + el);
   })
 first   / last
  • Vetor contendo somente primeiro ou último

 before     / after
  • Insere conteúdo antes ou depois de um ou mais
    elementos

 clone
  • Cria cópia profunda de elemento(s)
 live
  • Associa evento a elemento(s) ainda não
    existente(s)
  • $('button').live('click', function() { ... })
 wrap
  • Envolve elemento(s)
  • $('span').wrap('<p>')

 wrapInner
  • Envolve conteúdo de elemento(s)
  • $('td').wrapInner('<span class=“azul”>')

 unwrap
  • Remove pai preservando filho
  • $('span').unwrap()
 html
  • Recupera / altera conteúdo HTML
  • $('#elemento').html()
  • $('#elemento').html('<p>um paragrafo</p>')

 text
  • Recupera / altera texto
  • $('#elemento').text()
  • $('#elemento').text('<p>menor p maior</p>')
 Implementar   em jQuery:
 • Seleção múltipla
 • Remoção
 • Animação
 • Zebrado
 http://jquery.com
  • Informações gerais
  • Download
  • Plugins


 http://api.jquery.com
  • Informações detalhadas sobre API
  • Destaque para busca e categorização

Mais conteúdo relacionado

Mais procurados

jQuery - Visão Geral
jQuery - Visão GeraljQuery - Visão Geral
jQuery - Visão GeralKaio Valente
 
Introdução ao jquery
Introdução ao jqueryIntrodução ao jquery
Introdução ao jqueryYuri Costa
 
MiniCurso Jquery - IV SimSis
MiniCurso Jquery - IV SimSisMiniCurso Jquery - IV SimSis
MiniCurso Jquery - IV SimSisThiago Miranda
 
J query javascript para seres humanos
J query   javascript para seres humanosJ query   javascript para seres humanos
J query javascript para seres humanosnobios
 
JQuery Alagoinhas Dev Day - UNEB
JQuery Alagoinhas Dev Day - UNEBJQuery Alagoinhas Dev Day - UNEB
JQuery Alagoinhas Dev Day - UNEBLuciano Borges
 
PHPubSP Object Calisthenics aplicado ao PHP
PHPubSP Object Calisthenics aplicado ao PHPPHPubSP Object Calisthenics aplicado ao PHP
PHPubSP Object Calisthenics aplicado ao PHPGuilherme Blanco
 
PHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object CalisthenicsPHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object CalisthenicsGuilherme Blanco
 
Object Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesObject Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesOtávio Calaça Xavier
 
Web 2.0 com Ajax: JQuery/PHP (Aula 04)
Web 2.0 com Ajax: JQuery/PHP (Aula 04)Web 2.0 com Ajax: JQuery/PHP (Aula 04)
Web 2.0 com Ajax: JQuery/PHP (Aula 04)Wagner Silva
 
JavaScript: prototipação, closure e encapsulamento
JavaScript: prototipação, closure e encapsulamentoJavaScript: prototipação, closure e encapsulamento
JavaScript: prototipação, closure e encapsulamentoRicardo Valeriano
 

Mais procurados (20)

jQuery - Visão Geral
jQuery - Visão GeraljQuery - Visão Geral
jQuery - Visão Geral
 
Java script aula 06 - dom
Java script   aula 06 - domJava script   aula 06 - dom
Java script aula 06 - dom
 
Jquery a technical overview
Jquery a technical overviewJquery a technical overview
Jquery a technical overview
 
jQuery Simplificando o JavaScript
jQuery Simplificando o JavaScriptjQuery Simplificando o JavaScript
jQuery Simplificando o JavaScript
 
Introdução ao jquery
Introdução ao jqueryIntrodução ao jquery
Introdução ao jquery
 
CSS & JQquery
CSS & JQqueryCSS & JQquery
CSS & JQquery
 
J query 1
J query 1J query 1
J query 1
 
Meta-programacao em python
Meta-programacao em pythonMeta-programacao em python
Meta-programacao em python
 
MiniCurso Jquery - IV SimSis
MiniCurso Jquery - IV SimSisMiniCurso Jquery - IV SimSis
MiniCurso Jquery - IV SimSis
 
J query javascript para seres humanos
J query   javascript para seres humanosJ query   javascript para seres humanos
J query javascript para seres humanos
 
JQuery Alagoinhas Dev Day - UNEB
JQuery Alagoinhas Dev Day - UNEBJQuery Alagoinhas Dev Day - UNEB
JQuery Alagoinhas Dev Day - UNEB
 
PHPubSP Object Calisthenics aplicado ao PHP
PHPubSP Object Calisthenics aplicado ao PHPPHPubSP Object Calisthenics aplicado ao PHP
PHPubSP Object Calisthenics aplicado ao PHP
 
PHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object CalisthenicsPHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object Calisthenics
 
Workshop Django
Workshop DjangoWorkshop Django
Workshop Django
 
PHP ao Extremo
PHP ao ExtremoPHP ao Extremo
PHP ao Extremo
 
Escrevendo plugins JQuery
Escrevendo plugins JQueryEscrevendo plugins JQuery
Escrevendo plugins JQuery
 
Object Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesObject Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simples
 
Curso de PHP - Objetos
Curso de PHP - ObjetosCurso de PHP - Objetos
Curso de PHP - Objetos
 
Web 2.0 com Ajax: JQuery/PHP (Aula 04)
Web 2.0 com Ajax: JQuery/PHP (Aula 04)Web 2.0 com Ajax: JQuery/PHP (Aula 04)
Web 2.0 com Ajax: JQuery/PHP (Aula 04)
 
JavaScript: prototipação, closure e encapsulamento
JavaScript: prototipação, closure e encapsulamentoJavaScript: prototipação, closure e encapsulamento
JavaScript: prototipação, closure e encapsulamento
 

Destaque

Clever Consulting Newsletter > Giugno 2012
Clever Consulting Newsletter > Giugno 2012Clever Consulting Newsletter > Giugno 2012
Clever Consulting Newsletter > Giugno 2012Clever Consulting
 
Trabalho 4 eugenio_apresenta_o_do_dia_27
Trabalho 4 eugenio_apresenta_o_do_dia_27Trabalho 4 eugenio_apresenta_o_do_dia_27
Trabalho 4 eugenio_apresenta_o_do_dia_27Bruno Balvedi
 
High-performance PC-based multi-axis motion control cards
High-performance PC-based multi-axis motion control cardsHigh-performance PC-based multi-axis motion control cards
High-performance PC-based multi-axis motion control cardsjuliangoal
 
Web design principles (2)
Web design principles (2)Web design principles (2)
Web design principles (2)Briana O'Neill
 
Vracs Pics44
Vracs Pics44Vracs Pics44
Vracs Pics44zalinet
 
Arte e Tecnologia Social
Arte e Tecnologia SocialArte e Tecnologia Social
Arte e Tecnologia Socialecoarte
 
Pescara 20 Hackers Rockers Of The Mediterranean Sea
Pescara 20 Hackers Rockers Of The Mediterranean SeaPescara 20 Hackers Rockers Of The Mediterranean Sea
Pescara 20 Hackers Rockers Of The Mediterranean SeaMarco Colarossi
 

Destaque (8)

Clever Consulting Newsletter > Giugno 2012
Clever Consulting Newsletter > Giugno 2012Clever Consulting Newsletter > Giugno 2012
Clever Consulting Newsletter > Giugno 2012
 
Bagkok
BagkokBagkok
Bagkok
 
Trabalho 4 eugenio_apresenta_o_do_dia_27
Trabalho 4 eugenio_apresenta_o_do_dia_27Trabalho 4 eugenio_apresenta_o_do_dia_27
Trabalho 4 eugenio_apresenta_o_do_dia_27
 
High-performance PC-based multi-axis motion control cards
High-performance PC-based multi-axis motion control cardsHigh-performance PC-based multi-axis motion control cards
High-performance PC-based multi-axis motion control cards
 
Web design principles (2)
Web design principles (2)Web design principles (2)
Web design principles (2)
 
Vracs Pics44
Vracs Pics44Vracs Pics44
Vracs Pics44
 
Arte e Tecnologia Social
Arte e Tecnologia SocialArte e Tecnologia Social
Arte e Tecnologia Social
 
Pescara 20 Hackers Rockers Of The Mediterranean Sea
Pescara 20 Hackers Rockers Of The Mediterranean SeaPescara 20 Hackers Rockers Of The Mediterranean Sea
Pescara 20 Hackers Rockers Of The Mediterranean Sea
 

Semelhante a Minicurso de jQuery

Simplificando o Javascrip
Simplificando o JavascripSimplificando o Javascrip
Simplificando o JavascripMiquéias Amaro
 
Palestra - Iniciando no Jquery
Palestra - Iniciando no JqueryPalestra - Iniciando no Jquery
Palestra - Iniciando no Jquerygrupoweblovers
 
LPII_Aula_7-JQuery.pdf
LPII_Aula_7-JQuery.pdfLPII_Aula_7-JQuery.pdf
LPII_Aula_7-JQuery.pdfGabrielaMota46
 
JavaScript ninja com jQuery
JavaScript ninja com jQueryJavaScript ninja com jQuery
JavaScript ninja com jQueryReinaldo Junior
 
Jquery - Dicas e Truques
Jquery - Dicas e TruquesJquery - Dicas e Truques
Jquery - Dicas e TruquesLambda 3
 
Evento Front End SP - Organizando o Javascript
 Evento Front End SP - Organizando o Javascript Evento Front End SP - Organizando o Javascript
Evento Front End SP - Organizando o JavascriptMichel Ribeiro
 
LambdaDay: Backbone.js
LambdaDay: Backbone.jsLambdaDay: Backbone.js
LambdaDay: Backbone.jsGiovanni Bassi
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Luciano Ramalho
 
JQuery - JS 101
JQuery - JS 101JQuery - JS 101
JQuery - JS 101TheCoreh
 
Maratona de Programação com STL
Maratona de Programação com STLMaratona de Programação com STL
Maratona de Programação com STLMarcos Castro
 
Persistência de Dados no SQLite com Room
Persistência de Dados no SQLite com RoomPersistência de Dados no SQLite com Room
Persistência de Dados no SQLite com RoomNelson Glauber Leal
 
Grails parte 1 - introdução
Grails   parte 1 - introduçãoGrails   parte 1 - introdução
Grails parte 1 - introduçãoJosino Rodrigues
 

Semelhante a Minicurso de jQuery (20)

Java script aula 07 - j-query
Java script   aula 07 - j-queryJava script   aula 07 - j-query
Java script aula 07 - j-query
 
Java script aula 09 - JQuery
Java script   aula 09 - JQueryJava script   aula 09 - JQuery
Java script aula 09 - JQuery
 
Simplificando o Javascrip
Simplificando o JavascripSimplificando o Javascrip
Simplificando o Javascrip
 
Palestra - Iniciando no Jquery
Palestra - Iniciando no JqueryPalestra - Iniciando no Jquery
Palestra - Iniciando no Jquery
 
Programação Web com jQuery
Programação Web com jQueryProgramação Web com jQuery
Programação Web com jQuery
 
LPII_Aula_7-JQuery.pdf
LPII_Aula_7-JQuery.pdfLPII_Aula_7-JQuery.pdf
LPII_Aula_7-JQuery.pdf
 
JavaScript ninja com jQuery
JavaScript ninja com jQueryJavaScript ninja com jQuery
JavaScript ninja com jQuery
 
Jquery - Dicas e Truques
Jquery - Dicas e TruquesJquery - Dicas e Truques
Jquery - Dicas e Truques
 
Introdução ao JQuery e AJAX
Introdução ao JQuery e AJAXIntrodução ao JQuery e AJAX
Introdução ao JQuery e AJAX
 
JQuery
JQuery JQuery
JQuery
 
Evento Front End SP - Organizando o Javascript
 Evento Front End SP - Organizando o Javascript Evento Front End SP - Organizando o Javascript
Evento Front End SP - Organizando o Javascript
 
Dinamizando Sites Estáticos
Dinamizando Sites EstáticosDinamizando Sites Estáticos
Dinamizando Sites Estáticos
 
Javascript + jQuery
Javascript + jQueryJavascript + jQuery
Javascript + jQuery
 
LambdaDay: Backbone.js
LambdaDay: Backbone.jsLambdaDay: Backbone.js
LambdaDay: Backbone.js
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)
 
JQuery - JS 101
JQuery - JS 101JQuery - JS 101
JQuery - JS 101
 
Maratona de Programação com STL
Maratona de Programação com STLMaratona de Programação com STL
Maratona de Programação com STL
 
Html dom, eventos, jquery
Html dom, eventos, jqueryHtml dom, eventos, jquery
Html dom, eventos, jquery
 
Persistência de Dados no SQLite com Room
Persistência de Dados no SQLite com RoomPersistência de Dados no SQLite com Room
Persistência de Dados no SQLite com Room
 
Grails parte 1 - introdução
Grails   parte 1 - introduçãoGrails   parte 1 - introdução
Grails parte 1 - introdução
 

Mais de André Willik Valenti

JavaScript Firme: Módulos com RequireJS e BDD com Jasmine
JavaScript Firme: Módulos com RequireJS e BDD com JasmineJavaScript Firme: Módulos com RequireJS e BDD com Jasmine
JavaScript Firme: Módulos com RequireJS e BDD com JasmineAndré Willik Valenti
 
Minicurso de Encoding - resolvendo problemas com acentuação (#TDC2012 Goiânia)
Minicurso de Encoding - resolvendo problemas com acentuação (#TDC2012 Goiânia)Minicurso de Encoding - resolvendo problemas com acentuação (#TDC2012 Goiânia)
Minicurso de Encoding - resolvendo problemas com acentuação (#TDC2012 Goiânia)André Willik Valenti
 

Mais de André Willik Valenti (6)

JavaScript Firme: Módulos com RequireJS e BDD com Jasmine
JavaScript Firme: Módulos com RequireJS e BDD com JasmineJavaScript Firme: Módulos com RequireJS e BDD com Jasmine
JavaScript Firme: Módulos com RequireJS e BDD com Jasmine
 
Usabilidade de Ferramentas
Usabilidade de FerramentasUsabilidade de Ferramentas
Usabilidade de Ferramentas
 
Minicurso de Encoding - resolvendo problemas com acentuação (#TDC2012 Goiânia)
Minicurso de Encoding - resolvendo problemas com acentuação (#TDC2012 Goiânia)Minicurso de Encoding - resolvendo problemas com acentuação (#TDC2012 Goiânia)
Minicurso de Encoding - resolvendo problemas com acentuação (#TDC2012 Goiânia)
 
Minicurso Encoding - TDC2012
Minicurso Encoding - TDC2012Minicurso Encoding - TDC2012
Minicurso Encoding - TDC2012
 
Minicurso encoding
Minicurso encodingMinicurso encoding
Minicurso encoding
 
Minicurso de Expressões Regulares
Minicurso de Expressões RegularesMinicurso de Expressões Regulares
Minicurso de Expressões Regulares
 

Minicurso de jQuery

  • 1. André Willik Valenti Dextra Sistemas
  • 2.  Biblioteca JavaScript  Cross-browser(IE 6.0+, FF 2.0+, Safari 3.0+, Opera 9.0+, Chrome)  MUITAS funcionalidades
  • 3.  Manipulação de DOM  Animações  Utilitários (ex: AJAX)  Compatibilidade entre navegadores  Etc.
  • 4.  Simplicidade • Tudo numa linha de código  Selecionar e manipular coisas • “Pegue tais elementos e faça tal coisa”  Um ou muitos: tanto faz • Se funciona pra um, funciona pra muitos  Diga exatamente o que quer fazer • Foco em “o que”, não em “como”
  • 5.  Produtivo  Intuitivo  Bem documentado  Extensível
  • 6.  HTML • <script src=“jquery-1.6.1.min.js”></script>  Função jQuery • jQuery('seletor-css').algumMetodo()  Atalho: $ • $('seletor-css').algumMetodo()
  • 7.  Modo no conflict • Evita conflito do $ com outras bibliotecas • $.noConflict()
  • 8.  HTML Nome: <input id="nome" /> CPF: <input id="cpf" class="numerico" /> Idade: <input id="idade" class="numerico" /> Cidade: <input id="cidade" />  jQuery • $('input')  4 elementos • $('input.numerico')  2 elementos • $('input#cpf')  1 elemento
  • 9.  Um ou muitos • $('input#cpf').remove()  Remove 1 elemento • $('input.numerico').remove()  Remove 2 elementos • $('input').remove()  Remove 4 elementos • Se funciona pra um, funciona pra muitos • (alguns métodos operam somente em um mesmo)
  • 10.  Transformações no documento HTML • Atributos (id, value, class, disabled, style etc.) • Elementos (adicionar, remover, mover, copiar)
  • 11.  Vamos pegar o último exemplo: • $('input#cpf')  Ou simplesmente... • $('#cpf')
  • 12.  Recuperar atributo: • $('#cpf').attr('id')  'cpf'  Alterar atributo: • $('#cpf').attr('id', 'novo-valor')  Remover atributo: • $('#cpf').removeAttr('disabled')
  • 13.  Recuperar/alterar atributo value: • $('#cpf').attr('value')  valor digitado • $('#cpf').attr('value', '123.456.789-00')  Atalho: • $('#cpf').val()  valor digitado • $('#cpf').val('123.456.789-00')
  • 14.  Alterar estilo: • $('#cpf'). attr('style', 'font-weigth: bold')  Atalho: • $('#cpf').css('font-weight', 'bold') • $('#cpf').css('font-weight')  'bold'
  • 15.  Recuperar/alterar classe(s) : • $('#cpf').attr('class')  'numerico' • $('#cpf').attr('class', 'campo-cpf')  Atalhos: • $('#cpf').hasClass('numerico') • $('#cpf').addClass('campo-cpf') • $('#cpf').removeClass('campo-cpf')
  • 16.  Esconder/exibir elemento: • $('#cpf').css('display', 'none') • $('#cpf').css('display', 'inline') // ou seria block? E pra alternar a exibição? • Tem que ver se está sendo exibido • Se está, esconde • Se não está, exibe
  • 17.  Tentativa 1.0: css • if ($('#cpf').css('display') == 'none') { $('#cpf').css('display', 'inline'); // ou block? } else { $('#cpf').css('display', 'none'); }
  • 18.  Tentativa 2.0: add/removeClass • .escondido { display: none; } • if ($('#cpf').hasClass('escondido')) { $('#cpf').removeClass('escondido'); } else { $('#cpf').addClass('escondido'); }
  • 19.  Tentativa 2.1: toggleClass • .escondido { display: none; } • $('#cpf').toggleClass('escondido');
  • 20.  Atalhos: • $('#cpf').hide() • $('#cpf').show() E por que não... • $('#cpf').toggle() • Aí sim !
  • 21.  Vai recuperar/alterar valor? • val  Vai recuperar/alterar estilo? • css  Vai recuperar/alterar atributos gerais? • attr  Vai remover atributos? • removeAttr
  • 22.  Quer checar existência de classe? • hasClass  Quer adicionar classe? • addClass  Quer remover classe? • removeClass  Quer alternar classe? • toggleClass
  • 23.  Exibir elemento? • show  Ocultar elemento? • hide  Alternar exibição de elemento? • toggle
  • 24.  Seletores  Um ou muitos  Atributos • attr • val • class • hide/show/toggle
  • 25.  Métodos para: • Adicionar elementos HTML ou texto • Remover elementos HTML  Exemplos de aplicação: • Alterar uma tabela • Criar novas seções na página
  • 26.  prepend / append • Acrescentam conteúdo a um elemento • Exemplo:  <table><tr><td> 2 </td> <td> 3 </td></tr></table>  $('table tr').prepend('<td> 1 </td>')  $('table tr').append('<td> 4 </td>')
  • 27.
  • 28.  remove • Remove elementos do DOM • $('table').remove()  remove / hide • hide() apenas esconde, usando display: none • remove() efetivamente remove do DOM
  • 29.  prepend / append  remove / hide
  • 30.  Métodos • fadeOut, fadeIn, fadeToggle • slideUp, slideDown, slideToggle • toggle  Tempo em milissegundos, 'fast' ou 'slow' • 'fast'  200ms • 'slow'  600ms
  • 32.  Pseudoclasses CSS • :first / :last • :odd / :even • :checked • :enabled / :disabled • :has('seletor-filhos') • :contains('string-conteúdo') • Etc.
  • 33.  add • $('table#resultados').add('div#topo').remove()  Atalho • $('table#resultados, div#topo').remove()
  • 34.  children • $('table').children() // thead e tbody • $('table tbody').children() // tr's • $('table tbody').children('tr.selecionado')  find • $('table').find('.selecionado') • $('div#minha-div').find('span#meu-span')
  • 35. parent • Pai (elemento imediatamente acima)  parents • Todos os ancestrais (pai, avô etc.)  siblings • Irmãos  E dá para filtrar em todos eles! • $('span').parent('.selecionado') • $('span').parents('fieldset') • $('table tr td#meu-td').siblings('.inativo')
  • 36.  closest • Próprio elemento ou ancestral mais próximo • $('div#minha-div').closest('.minha-classe')  filter • Filtra um objeto jQuery • Similar à filtragem com children, parents etc. • $('div, p, span, br').filter('.remover').remove()
  • 37.  bind • $('input:text').bind('onchange', function() { alert('Elemento alterado: ' + this); })  Atalho • $('input:text').change(function() {...});
  • 38.  Atalhos • onchange  change • onclick  click • onfocus  focus • onblur  blur • onselect  select • onsubmit  submit • ...
  • 39.  ready • Disparado quando elemento foi carregado • $('div#principal').ready(function() {...}) • $(document).ready(function() {...})  Atalho • $(function() {...}) // Aplica ao document
  • 40.  Vantagens • Cross-browser • Acumula eventos • Permite desativá-los facilmente
  • 41.  Com jQuery: • $('input#meu-input').change(funcao1); • $('input#meu-input').change(funcao2); • $('input#meu-input').change(funcao3);  Cansou dos eventos? • $('input#meu-input').unbind(); • Afeta apenas os eventos criados com jQuery
  • 42.  $.trim • Remove espaços sobressalentes (cross- browser)  $.browser • Nome e versão do navegador  $.inArray(elemento, vetor) • Procura posição do elemento no vetor
  • 43.  AJAX • $.ajax • $.get • $.post
  • 44.  $.ajax(url [, settings])  $.ajax('/usuarios', { type: 'PUT', data: { nome: 'Joao', idade: '20'}, success: function() {...}, error: function() {...}; });
  • 45.  $.ajax(url [, settings])  $.ajax('/usuarios', { type: 'PUT', data: { nome: 'Joao', idade: '20'}, statusCode: { 200: function() { alert('OK'); }, 404 : function() { ... } } });
  • 46.  $.get(url [, data] [, success])  $.get('usuarios/index.html', function(result) { alert(result); });
  • 47.  $.post(url [, data] [, success])  var joao = { nome: 'Joao', idade: '20' }; $.post('usuarios/new', joao, funcaoTratarAjax);
  • 48.  .each(function(index, element) { }) • $('input.valores').each(function(i, el) { alert('Índice: ' + i + ', elemento: ' + el); })
  • 49.  first / last • Vetor contendo somente primeiro ou último  before / after • Insere conteúdo antes ou depois de um ou mais elementos  clone • Cria cópia profunda de elemento(s)
  • 50.  live • Associa evento a elemento(s) ainda não existente(s) • $('button').live('click', function() { ... })
  • 51.  wrap • Envolve elemento(s) • $('span').wrap('<p>')  wrapInner • Envolve conteúdo de elemento(s) • $('td').wrapInner('<span class=“azul”>')  unwrap • Remove pai preservando filho • $('span').unwrap()
  • 52.  html • Recupera / altera conteúdo HTML • $('#elemento').html() • $('#elemento').html('<p>um paragrafo</p>')  text • Recupera / altera texto • $('#elemento').text() • $('#elemento').text('<p>menor p maior</p>')
  • 53.  Implementar em jQuery: • Seleção múltipla • Remoção • Animação • Zebrado
  • 54.  http://jquery.com • Informações gerais • Download • Plugins  http://api.jquery.com • Informações detalhadas sobre API • Destaque para busca e categorização