Upgrade to Pro — share decks privately, control downloads, hide ads and more …

JQUERY - easy JavaScript

Avatar for João Felix João Felix
September 02, 2013

JQUERY - easy JavaScript

Jogando com Javascript no modo "very easy".

Avatar for João Felix

João Felix

September 02, 2013
Tweet

Other Decks in Programming

Transcript

  1. JOÃO FELIX •  É DESENVOLVEDOR WEB E EMPREENDEDOR; •  TRABALHOU

    EM DIVERSOS PROJETOS DE SOFTWARE COM DIVERSAS LINGUAGENS DE PROGRAMAÇÃO E MESMO ASSIM NUNCA CONSEGUIU ABANDONAR O JAVASCRIPT; •  BASICAMENTE UM FANÁTICO POR STARTUPS QUE SE DIVERTE PROGRAMANDO. @_joaofelix
  2. •  UM ARQUIVO DE TEXTO PRESENTE EM 19.473.272 SITES, TOTALIZANDO

    MAIS DE 55% DOS 10.000 SITES MAIS VISITADOS DO MUNDO! •  INCLUINDO: @_joaofelix - GOOGLE - AMAZON - WIKIPEDIA - WORDPRESS - STACKOVERFLOW - ISNTAGRAM - PINTEREST - MICROSOFT
  3. •  TORNA O JAVASCRIPT MAIS ACESSÍVEL; •  REDUZ CÓDIGO PRA

    [USE SUA HIPÉRBOLE FAVORITA]; •  MANIPULA DOM LIKE A BOSS; •  É MAGRINHO (CERTA DE 93KB); •  AGRADA A TODO MUNDO (ATÉ O IE6); •  MUITA GENTE JÁ TESTOU ELE PRA VOCÊ!! @_joaofelix
  4. •  É 0800! •  DÁ PRA MANIPULAR ESTILO DE ELEMENTOS;

    •  DÁ PARA ARMAZENAR INFORMAÇÕES EM DOM; •  DÁ PARA FAZER ANIMAÇÕES; •  DÁ PRA FAZER AJAX EM POUCAS LINHAS; •  DÁ PARA COMPONENTIZAR, ATRAVÉS DE PLUGINS; •  A COMUNIDADE JQUERY É ENORME! @_joaofelix
  5. •  EVOLUINDO DESDE 2006; •  LICENÇA MIT GNU2; •  DIVIDIDO

    EM 2013: – VERSÃO 1.10.2: SUPORTE A TODOS OS BROWSER; – VERSÃO 2.0.3: APENAS BROWSERS MODERNOS (BYE BYE IE 6,7,8); •  CONSTANTE EVOLUÇÃO (ATENÇÃO, HOMENS TRABALHANDO); @_joaofelix
  6. <!DOCTYPE html> <html> <head> <title>Meu documento</title> <script src=“http://code.jquery.com/ jquery-1.10.2.min.js”></script> </head>

    <body> </body> </html> É só baixar o arquivo do site http://www.jquery.com ou utilizar algum cdn para fornecer o arquivo; @_joaofelix
  7. <script type=“text/javascript”> $(document).ready(function(){ // Seu código vem aqui }); //Alternativa

    $(function(){ // Seu código vem aqui }); </script> Utilizando jquery, você garantirá que seu código só será executado quando todo o DOM estiver carregado; @_joaofelix
  8. $(function(){ // Seu código vem aqui }); // é igual

    a... jQuery(function(){ // Seu código vem aqui }); Lembre-se que o código Javascript é sensitivo à variações de escrita; @_joaofelix
  9. <div id=“bemvindo”></div> <ul id=“palestra”> <li class=“conteudo”>jQuery</li> <li class=“conteudo”>JavaScript</li> <li class=“conteudo

    extra”>CSS</li> <li class=“conteudo extra”>HTML</li> </ul> <form action=“enviarSugestao.php”> <input type=“text” name=“sugestao”/> <input type=“submit” value=“Enviar”/> </form> $(‘#palestra’) $(‘.conteudo’) $(‘.conteudo:not(.extra)’) $(‘*’) $(‘input[name=sugestao]’) @_joaofelix
  10. <div id=“bemvindo”></div> <ul id=“palestra”> <li class=“conteudo”>jQuery</li> <li class=“conteudo”>JavaScript</li> <li class=“conteudo

    extra”>CSS</li> <li class=“conteudo extra”>HTML</li> </ul> <form action=“enviarSugestao.php”> <input type=“text” name=“sugestao”/> <input type=“submit” value=“Enviar”/> </form> $(‘#palestra’) $(‘.conteudo’) $(‘.conteudo:not(.extra)’) $(‘*’) $(‘input[name=sugestao]’) @_joaofelix
  11. <div id=“bemvindo”></div> <ul id=“palestra”> <li class=“conteudo”>jQuery</li> <li class=“conteudo”>JavaScript</li> <li class=“conteudo

    extra”>CSS</li> <li class=“conteudo extra”>HTML</li> </ul> <form action=“enviarSugestao.php”> <input type=“text” name=“sugestao”/> <input type=“submit” value=“Enviar”/> </form> $(‘#palestra’) $(‘.conteudo’) $(‘.conteudo:not(.extra)’) $(‘*’) $(‘input[name=sugestao]’) @_joaofelix
  12. <div id=“bemvindo”></div> <ul id=“palestra”> <li class=“conteudo”>jQuery</li> <li class=“conteudo”>JavaScript</li> <li class=“conteudo

    extra”>CSS</li> <li class=“conteudo extra”>HTML</li> </ul> <form action=“enviarSugestao.php”> <input type=“text” name=“sugestao”/> <input type=“submit” value=“Enviar”/> </form> $(‘#palestra’) $(‘.conteudo’) $(‘.conteudo:not(.extra)’) $(‘*’) $(‘input[name=sugestao]’) @_joaofelix
  13. <div id=“bemvindo”></div> <ul id=“palestra”> <li class=“conteudo”>jQuery</li> <li class=“conteudo”>JavaScript</li> <li class=“conteudo

    extra”>CSS</li> <li class=“conteudo extra”>HTML</li> </ul> <form action=“enviarSugestao.php”> <input type=“text” name=“sugestao”/> <input type=“submit” value=“Enviar”/> </form> $(‘#palestra’) $(‘.conteudo’) $(‘.conteudo:not(.extra)’) $(‘*’) $(‘input[name=sugestao]’) @_joaofelix
  14. $(‘ul’).find(‘.conteudo’) .removeClass(‘extra’) .addClass(‘novo’) .append(‘ – 02/09/2013”) .wrapInner($(‘<div/>’).addClass(‘capa’)) .on(‘hover’,function(e){ $(this).addClass(‘focado’); },function(e){

    $(this).removeClass(‘focado’); }); Procuramos os elementos de classe conteúdo dentro do elemento ul, removemos a classe “extra”, adicionamos a classe “novo”, incluímos o conteúdo “ – 02/09/2013” em cada um destes elementos, encapsulamos o conteúdo de todos eles em elementos div de classe “capa” e também adicionamos eventos para quando o mouse estivesse sobre os elementos ou fora deles; @_joaofelix
  15. $(‘ul’).find(‘.conteudo’) .removeClass(‘extra’) .addClass(‘novo’) .append(‘ – 02/09/2013”) .wrapInner($(‘<div/>’).addClass(‘capa’)) .on(‘hover’,function(e){ $(this).addClass(‘focado’); },function(e){

    $(this).removeClass(‘focado’); }); Procuramos os elementos de classe conteúdo dentro do elemento ul, removemos a classe “extra”, adicionamos a classe “novo”, incluímos o conteúdo “ – 02/09/2013” em cada um destes elementos, encapsulamos o conteúdo de todos eles em elementos div de classe “capa” e também adicionamos eventos para quando o mouse estivesse sobre os elementos ou fora deles; @_joaofelix
  16. $(‘ul’).find(‘.conteudo’) .removeClass(‘extra’) .addClass(‘novo’) .append(‘ – 02/09/2013”) .wrapInner($(‘<div/>’).addClass(‘capa’)) .on(‘hover’,function(e){ $(this).addClass(‘focado’); },function(e){

    $(this).removeClass(‘focado’); }); Procuramos os elementos de classe conteúdo dentro do elemento ul, removemos a classe “extra”, adicionamos a classe “novo”, incluímos o conteúdo “ – 02/09/2013” em cada um destes elementos, encapsulamos o conteúdo de todos eles em elementos div de classe “capa” e também adicionamos eventos para quando o mouse estivesse sobre os elementos ou fora deles; @_joaofelix
  17. $(‘ul’).find(‘.conteudo’) .removeClass(‘extra’) .addClass(‘novo’) .append(‘ – 02/09/2013”) .wrapInner($(‘<div/>’).addClass(‘capa’)) .on(‘hover’,function(e){ $(this).addClass(‘focado’); },function(e){

    $(this).removeClass(‘focado’); }); Procuramos os elementos de classe conteúdo dentro do elemento ul, removemos a classe “extra”, adicionamos a classe “novo”, incluímos o conteúdo “ – 02/09/2013” em cada um destes elementos, encapsulamos o conteúdo de todos eles em elementos div de classe “capa” e também adicionamos eventos para quando o mouse estivesse sobre os elementos ou fora deles; @_joaofelix
  18. $(‘ul’).find(‘.conteudo’) .removeClass(‘extra’) .addClass(‘novo’) .append(‘ – 02/09/2013”) .wrapInner($(‘<div/>’).addClass(‘capa’)) .on(‘hover’,function(e){ $(this).addClass(‘focado’); },function(e){

    $(this).removeClass(‘focado’); }); Procuramos os elementos de classe conteúdo dentro do elemento ul, removemos a classe “extra”, adicionamos a classe “novo”, incluímos o conteúdo “ – 02/09/2013” em cada um destes elementos, encapsulamos o conteúdo de todos eles em elementos div de classe “capa” e também adicionamos eventos para quando o mouse estivesse sobre os elementos ou fora deles; @_joaofelix
  19. $(‘ul’).find(‘.conteudo’) .removeClass(‘extra’) .addClass(‘novo’) .append(‘ – 02/09/2013”) .wrapInner($(‘<div/>’).addClass(‘capa’)) .on(‘hover’,function(e){ $(this).addClass(‘focado’); },function(e){

    $(this).removeClass(‘focado’); }); Procuramos os elementos de classe conteúdo dentro do elemento ul, removemos a classe “extra”, adicionamos a classe “novo”, incluímos o conteúdo “ – 02/09/2013” em cada um destes elementos, encapsulamos o conteúdo de todos eles em elementos div de classe “capa” e também adicionamos eventos para quando o mouse estivesse sobre os elementos ou fora deles; @_joaofelix
  20. $(‘ul’).find(‘.conteudo’) .removeClass(‘extra’) .addClass(‘novo’) .append(‘ – 02/09/2013”) .wrapInner($(‘<div/>’).addClass(‘capa’)) .on(‘hover’,function(e){ $(this).addClass(‘focado’); },function(e){

    $(this).removeClass(‘focado’); }); Procuramos os elementos de classe conteúdo dentro do elemento ul, removemos a classe “extra”, adicionamos a classe “novo”, incluímos o conteúdo “ – 02/09/2013” em cada um destes elementos, encapsulamos o conteúdo de todos eles em elementos div de classe “capa” e também adicionamos eventos para quando o mouse estivesse sobre os elementos ou fora deles; @_joaofelix
  21. $(‘ul’).find(‘.conteudo’) .removeClass(‘extra’) .addClass(‘novo’) .append(‘ – 02/09/2013”) .wrapInner($(‘<div/>’).addClass(‘capa’)) .on(‘hover’,function(e){ $(this).addClass(‘focado’); },function(e){

    $(this).removeClass(‘focado’); }); Procuramos os elementos de classe conteúdo dentro do elemento ul, removemos a classe “extra”, adicionamos a classe “novo”, incluímos o conteúdo “ – 02/09/2013” em cada um destes elementos, encapsulamos o conteúdo de todos eles em elementos div de classe “capa” e também adicionamos eventos para quando o mouse estivesse sobre os elementos ou fora deles; @_joaofelix
  22. $(‘ul’).find(‘.conteudo’) .removeClass(‘extra’) .addClass(‘novo’) .append(‘ – 02/09/2013”) .wrapInner($(‘<div/>’).addClass(‘capa’)) .on(‘hover’,function(e){ $(this).addClass(‘focado’); },function(e){

    $(this).removeClass(‘focado’); }); Procuramos os elementos de classe conteúdo dentro do elemento ul, removemos a classe “extra”, adicionamos a classe “novo”, incluímos o conteúdo “ – 02/09/2013” em cada um destes elementos, encapsulamos o conteúdo de todos eles em elementos div de classe “capa” e também adicionamos eventos para quando o mouse estivesse sobre os elementos ou fora deles; @_joaofelix
  23. $(‘#palestra’).css( ‘border’, ’1px solid #555’ ); $(‘#palestra > li’).css({ ‘width‘

    : 300, ‘height‘ : 50, ‘backgroundColor‘ : ‘#F0F0F0’, ‘textShadow‘ : ‘1px 1px 0px #000’, ‘color’ : ‘#FFFFFF’, ‘opacity’: 0.5 }); Alterando apenas uma propriedade; Alterando varias propriedades; @_joaofelix
  24. $(‘#palestra’).css( ‘border’, ’1px solid #555’ ); $(‘#palestra > li’).css({ ‘width‘

    : 300, ‘height‘ : 50, ‘backgroundColor‘ : ‘#F0F0F0’, ‘textShadow‘ : ‘1px 1px 0px #000’, ‘color’ : ‘#FFFFFF’, ‘opacity’: 0.5 }); Alterando apenas uma propriedade; Alterando varias propriedades; @_joaofelix
  25. $(‘#palestra’).css( ‘border’, ’1px solid #555’ ); $(‘#palestra > li’).css({ ‘width‘

    : 300, ‘height‘ : 50, ‘backgroundColor‘ : ‘#F0F0F0’, ‘textShadow‘ : ‘1px 1px 0px #000’, ‘color’ : ‘#FFFFFF’, ‘opacity’: 0.5 }); Alterando apenas uma propriedade; Alterando varias propriedades; @_joaofelix
  26. $(‘.conteudo’).animate({ ‘marginLeft’ : 50, ‘opacity’: 1 }, 320, function(){ });

    É possível animar cores e outros estilos através de plugins; Definindo a animação; Definindo a duração; Definindo uma ação após a conclusão; @_joaofelix
  27. $(‘.conteudo’).animate({ ‘marginLeft’ : 50, ‘opacity’: 1 }, 320, function(){ });

    É possível animar cores e outros estilos através de plugins; Definindo a animação; Definindo a duração; Definindo uma ação após a conclusão; @_joaofelix
  28. $(‘.conteudo’).animate({ ‘marginLeft’ : 50, ‘opacity’: 1 }, 320, function(){ });

    É possível animar cores e outros estilos através de plugins; Definindo a animação; Definindo a duração; Definindo uma ação após a conclusão; @_joaofelix
  29. $(‘.conteudo’).animate({ ‘marginLeft’ : 50, ‘opacity’: 1 }, 320, function(){ });

    É possível animar cores e outros estilos através de plugins; Definindo a animação; Definindo a duração; Definindo uma ação após a conclusão; @_joaofelix
  30. //Obtendo dados $.get(‘conteudo.html’,function( data ){ $(‘#palestra’).html( data ); }); //Enviando

    dados $.post(‘enviarSugestao.php’, { sugestao: $(‘input[name=sugestao]’).val() }, function( data ) { $(‘#palestra’).append( data ); }); Obtendo: $.get(); Enviando: $.post(); Funções de resposta; @_joaofelix
  31. //Obtendo dados $.get(‘conteudo.html’,function( data ){ $(‘#palestra’).html( data ); }); //Enviando

    dados $.post(‘enviarSugestao.php’, { sugestao: $(‘input[name=sugestao]’).val() }, function( data ) { $(‘#palestra’).append( data ); }); Obtendo: $.get(); Enviando: $.post(); Funções de resposta; @_joaofelix
  32. //Obtendo dados $.get(‘conteudo.html’,function( data ){ $(‘#palestra’).html( data ); }); //Enviando

    dados $.post(‘enviarSugestao.php’, { sugestao: $(‘input[name=sugestao]’).val() }, function( data ) { $(‘#palestra’).append( data ); }); Obtendo: $.get(); Enviando: $.post(); Funções de resposta; @_joaofelix
  33. //Obtendo dados $.get(‘conteudo.html’,function( data ){ $(‘#palestra’).html( data ); }); //Enviando

    dados $.post(‘enviarSugestao.php’, { sugestao: $(‘input[name=sugestao]’).val() }, function( data ) { $(‘#palestra’).append( data ); }); Obtendo: $.get(); Enviando: $.post(); Funções de resposta; @_joaofelix
  34. $.ajax({ type: ”GET", url: ”conteudo.json", dataType: ‘json’, cache: false, }).done(function(

    data ) { $(data).each(function(i, el){ $(‘<li/>’).text(el); }); }).fail(function( ) { alert(‘Ops…’); }); Iniciando uma requisição ajax; Informando parâmetros: tipo de requisição; url da requisição; tipo de conteúdo retornado; Não reutilizar respostas; Função de retorno para o caso de sucesso; Função de retorno para o caso de erro; @_joaofelix
  35. $.ajax({ type: ”GET", url: ”conteudo.json", dataType: ‘json’, cache: false, }).done(function(

    data ) { $(data).each(function(i, el){ $(‘<li/>’).text(el); }); }).fail(function( ) { alert(‘Ops…’); }); Iniciando uma requisição ajax; Informando parâmetros: tipo de requisição; url da requisição; tipo de conteúdo retornado; Não reutilizar respostas; Função de retorno para o caso de sucesso; Função de retorno para o caso de erro; @_joaofelix
  36. $.ajax({ type: ”GET", url: ”conteudo.json", dataType: ‘json’, cache: false, }).done(function(

    data ) { $(data).each(function(i, el){ $(‘<li/>’).text(el); }); }).fail(function( ) { alert(‘Ops…’); }); Iniciando uma requisição ajax; Informando parâmetros: tipo de requisição; url da requisição; tipo de conteúdo retornado; Não reutilizar respostas; Função de retorno para o caso de sucesso; Função de retorno para o caso de erro; @_joaofelix
  37. $.ajax({ type: ”GET", url: ”conteudo.json", dataType: ‘json’, cache: false, }).done(function(

    data ) { $(data).each(function(i, el){ $(‘<li/>’).text(el); }); }).fail(function( ) { alert(‘Ops…’); }); Iniciando uma requisição ajax; Informando parâmetros: tipo de requisição; url da requisição; tipo de conteúdo retornado; Não reutilizar respostas; Função de retorno para o caso de sucesso; Função de retorno para o caso de erro; @_joaofelix
  38. $.ajax({ type: ”GET", url: ”conteudo.json", dataType: ‘json’, cache: false, }).done(function(

    data ) { $(data).each(function(i, el){ $(‘<li/>’).text(el); }); }).fail(function( ) { alert(‘Ops…’); }); Iniciando uma requisição ajax; Informando parâmetros: tipo de requisição; url da requisição; tipo de conteúdo retornado; Não reutilizar respostas; Função de retorno para o caso de sucesso; Função de retorno para o caso de erro; @_joaofelix
  39. $.ajax({ type: ”GET", url: ”conteudo.json", dataType: ‘json’, cache: false, }).done(function(

    data ) { $(data).each(function(i, el){ $(‘<li/>’).text(el); }); }).fail(function( ) { alert(‘Ops…’); }); Iniciando uma requisição ajax; Informando parâmetros: tipo de requisição; url da requisição; tipo de conteúdo retornado; Não reutilizar respostas; Função de retorno para o caso de sucesso; Função de retorno para o caso de erro; @_joaofelix
  40. $.ajax({ type: ”GET", url: ”conteudo.json", dataType: ‘json’, cache: false, }).done(function(

    data ) { $(data).each(function(i, el){ $(‘<li/>’).text(el); }); }).fail(function( ) { alert(‘Ops…’); }); Iniciando uma requisição ajax; Informando parâmetros: tipo de requisição; url da requisição; tipo de conteúdo retornado; Não reutilizar respostas; Função de retorno para o caso de sucesso; Função de retorno para o caso de erro; @_joaofelix
  41. $.ajax({ type: ”GET", url: ”conteudo.json", dataType: ‘json’, cache: false, }).done(function(

    data ) { $(data).each(function(i, el){ $(‘<li/>’).text(el); }); }).fail(function( ) { alert(‘Ops…’); }); Iniciando uma requisição ajax; Informando parâmetros: tipo de requisição; url da requisição; tipo de conteúdo retornado; Não reutilizar respostas; Função de retorno para o caso de sucesso; Função de retorno para o caso de erro; @_joaofelix
  42. $.ajax({ type: ”GET", url: ”conteudo.json", dataType: ‘json’, cache: false, }).done(function(

    data ) { $(data).each(function(i, el){ $(‘<li/>’).text(el); }); }).fail(function( ) { alert(‘Ops…’); }); Iniciando uma requisição ajax; Informando parâmetros: tipo de requisição; url da requisição; tipo de conteúdo retornado; Não reutilizar respostas; Função de retorno para o caso de sucesso; Função de retorno para o caso de erro; @_joaofelix
  43. // Inserindo eventos $(‘#palestra form’).on(‘submit’, function(e){ e.stopPropagation(); }); $(‘#palestra’).on(‘click’, ‘.conteudo’,

    function(e){ $(this).addClass(‘marcado’); }); //Removendo eventos $(‘#palestra’).off(‘click’, ‘.conteudo’); Adicionando eventos; Delegando eventos; Removendo eventos; Interrompendo eventos; @_joaofelix
  44. // Inserindo eventos $(‘#palestra form’).on(‘submit’, function(e){ e.stopPropagation(); }); $(‘#palestra’).on(‘click’, ‘.conteudo’,

    function(e){ $(this).addClass(‘marcado’); }); //Removendo eventos $(‘#palestra’).off(‘click’, ‘.conteudo’); Adicionando eventos; Delegando eventos; Removendo eventos; Interrompendo eventos; @_joaofelix
  45. // Inserindo eventos $(‘#palestra form’).on(‘submit’, function(e){ e.stopPropagation(); }); $(‘#palestra’).on(‘click’, ‘.conteudo’,

    function(e){ $(this).addClass(‘marcado’); }); //Removendo eventos $(‘#palestra’).off(‘click’, ‘.conteudo’); Adicionando eventos; Delegando eventos; Removendo eventos; Interrompendo eventos; @_joaofelix
  46. // Inserindo eventos $(‘#palestra form’).on(‘submit’, function(e){ e.stopPropagation(); }); $(‘#palestra’).on(‘click’, ‘.conteudo’,

    function(e){ $(this).addClass(‘marcado’); }); //Removendo eventos $(‘#palestra’).off(‘click’, ‘.conteudo’); Adicionando eventos; Delegando eventos; Removendo eventos; Interrompendo eventos; @_joaofelix
  47. // Inserindo eventos $(‘#palestra form’).on(‘submit’, function(e){ e.stopPropagation(); }); $(‘#palestra’).on(‘click’, ‘.conteudo’,

    function(e){ $(this).addClass(‘marcado’); }); //Removendo eventos $(‘#palestra’).off(‘click’, ‘.conteudo’); Adicionando eventos; Delegando eventos; Removendo eventos; Interrompendo eventos; @_joaofelix
  48. //Adicionando informações var conteudo = $(‘.conteudo:first’); conteudo.data(‘palestrante’, ’João Felix’); conteudo.data(‘data’,

    ’02/09/2013’); //Recuperando informações conteudo.text(conteudo.data(‘palestrante’)); conteudo.text($.data(‘.conteudo:first’, ’data’)); Guardando informações; Recuperando Informações; @_joaofelix
  49. //Adicionando informações var conteudo = $(‘.conteudo:first’); conteudo.data(‘palestrante’, ’João Felix’); conteudo.data(‘data’,

    ’02/09/2013’); //Recuperando informações conteudo.text(conteudo.data(‘palestrante’)); conteudo.text($.data(‘.conteudo:first’, ’data’)); Guardando informações; Recuperando Informações; @_joaofelix
  50. //Adicionando informações var conteudo = $(‘.conteudo:first’); conteudo.data(‘palestrante’, ’João Felix’); conteudo.data(‘data’,

    ’02/09/2013’); //Recuperando informações conteudo.text(conteudo.data(‘palestrante’)); conteudo.text($.data(‘.conteudo:first’, ’data’)); Guardando informações; Recuperando Informações; @_joaofelix
  51. •  JQUERY MOBILE: JQUERYMOBILE.COM •  JQUERY UI: JQUERYUI.COM •  BOOTSTRAP:

    GETBOOTSTRAP.COM •  PURE CSS: PURECSS.IO @_joaofelix