800 likes | 923 Views
jQuery na Prática. vitorfs.com/jquery-na-pratica. Vitor Freitas. vitorfs@gmail.com github.com/vitorfs. Agenda. Introdução ao JavaScript e jQuery Fundamentos de JavaScript Document Object Model (DOM) Preparando o Ambiente Seletores jQuery Manipulando CSS Manipulando Conteúdo Eventos
E N D
jQuery na Prática vitorfs.com/jquery-na-pratica
Vitor Freitas vitorfs@gmail.com github.com/vitorfs
Agenda • Introdução ao JavaScript e jQuery • Fundamentos de JavaScript • Document Object Model (DOM) • Preparando o Ambiente • Seletores jQuery • Manipulando CSS • Manipulando Conteúdo • Eventos • Animação • Funções jQuery • Ajax • Formulários
Em 1995 nasce o JavaScript VBSCRIPT MOCHA MOCHA LIVESCRIPT LIVESCRIPT JAVASCRIPT
Por que usar jQuery? jQuery é uma camada de abstração Use jQuery porque... ... é fácil ... é produtivo ... browsers são incompatíveis ... seus usuários utilizam browsers antigos
jQuery não é nenhuma panacéia • Você ainda precisa de JavaScript • jQuery é pesado • Construa agora, melhore depois
Criando variáveis Dê nome aos dados var titulo = “jQuery na Prática”; • Palavra reservada: var • Nomes de variáveis normalmente em snake_case • Linha termina em ponto e vírgula ( ; )
Variáveis e dados • Tipagem fraca, dinâmica e implícita var numero = 100; (int) var titulo = “jQuery na Prática”; (string) var quantidade = 5.7; (float) var erro = true; (boolean)
Funções function soma (num1, num2) { var resultado; resultado = num1 + num2; return resultado; } • Palavra reservada: function • Nomes de funções normalmente em camelCase • Linha termina em ponto e vírgula ( ; )
Funções globais do JavaScript alert(“Olá, mundo!”); void var resposta = confirm(“Confirmar exclusão do registro?”); Retorna boolean var idade = prompt(“Informe sua idade:”); Retorna string
Funções de string var titulo = “jQuery na Prática”; titulo.toLowerCase(); “jquery na prática” titulo.toUpperCase(); “JQUERY NA PRÁTICA” titulo.charAt(2); “u” titulo.replace(“a”, “4”); “jQuery n4 Prátic4” titulo.split(“ ”); [“jQuery”, “na”, “Prática”]
Operações numéricas 10 + 5; 15 10 / 2; 5 parseInt(“10 reais”); 10 var num = 10; num.toString(); “10”
Arrays var frutas =[“maçã”, “uva”, “abacaxi”]; (Inicializa um array na variável frutas) frutas[2]; “abacaxi” (Retorna a posição 2) frutas.length; 3 (Retorna o tamanho da lista) frutas.reverse(); [“abacaxi”, “uva”, “maçã”] (Retorna a lista em ordem inversa)
DOM <html> <head> <title>jQuery na Prática</title> </head> <body> <h1 id=“titulo”>Curso de jQuery</h1> <p class=“autor”>Vitor Freitas</p> <ul> <li>JS</li> <li>DOM</li> <li>jQuery</li> </ul> </body> </html>
DOM html head body title h1#titulo p.autor ul Curso de jQuery Vitor Freitas jQuery na Prática li li li JS DOM jQuery
Carregando jQuery <script type=“text/javascript” src=“jquery-1.9.0.min.js”></script>
Verificando se o jQuery está carregado <script> console.log(jQuery); //ou alert(jQuery); </script> jQuery; ReferenceError: jQuery is not defined (jQuery não está carregado) jQuery; function (e,t){return new v.fn.init(e,t,n)} (Pronto para começar!) $; function (e,t){return new v.fn.init(e,t,n)} (Também jQuery!)
Seletores jQuery jQuery $(“h1”); (Nome do elemento) DOM html body h1 jQuery na Prática p.autor Vitor Freitas p#rodape vitorfs.com/jquery-na-pratica
Seletores jQuery jQuery $(“p”); (Nome do elemento) DOM html body h1 jQuery na Prática p.autor Vitor Freitas p#rodape vitorfs.com/jquery-na-pratica
Seletores jQuery jQuery $(“p.autor”); (Elemento + . + Classe) DOM html body h1 jQuery na Prática p.autor Vitor Freitas p#rodape vitorfs.com/jquery-na-pratica
Seletores jQuery jQuery $(“.autor”); (Somente a classe) DOM html body h1 jQuery na Prática p.autor Vitor Freitas p#rodape vitorfs.com/jquery-na-pratica
Seletores jQuery jQuery $(“p#rodape”); (Elemento + # + Id) DOM html body h1 jQuery na Prática p.autor Vitor Freitas p#rodape vitorfs.com/jquery-na-pratica
Resultado da Seleção jQuery $(“p”); DOM p.autor Vitor Freitas p#rodape vitorfs.com/jquery-na-pratica JavaScript [“<p class=‘autor’>Vitor Freitas</p>”, “<p id=‘rodape’>vitorfs.com/jquery-na-pratica</p>”]
Resultado da Seleção jQuery $(“h1, p#rodape”); $(“h1”, “p#rodape”); DOM h1 jQuery na Prática p#rodape vitorfs.com/jquery-na-pratica JavaScript [“<h1>Vitor Freitas</h1>”, “<p id=‘rodape’>vitorfs.com/jquery-na-pratica</p>”] Errado!
Espaço em branco $(“p#rodape”); Elemento p com id rodape $(“p #rodape”); Elemento com id rodape dentro do elemento p
Selecionando atributos $(“input”); // Todos inputs do DOM $(“input[type=‘text’]”); // Todos inputs do tipo text $(“input[type=‘text’][name=‘email’]”); // Selecione por mais de um atributo $(“p[id=‘rodape’]”); ou $(“p#rodape”); $(“p[class=‘autor’]”); ou $(“p.autor”);
Seletores css também são válidos <i class=“icon-ok”></i> <i class=“icon-cancelar”></i> $(“i[class^=‘icon-’]”); // Todos elementos i que a classe começa com “icon-” $(“i[class$=‘ok’]”); // Todos elementos i que a classe termina com “ok” $(“i[class*=‘icon’]”); // Todos elementos i que a classe possua “icon”
Filtros de seleção Filtros baseados no index do array de retorno da seleção $(“p:first”); // primeiro p da seleção $(“p:last”); // último p da seleção $(“li:eq(2)”); // elemento li com index 2 $(“tr:even”); // todos tr com index par $(“tr:odd”); // todos tr com index ímpar
Filtros de hierarquia Filtros baseados no hierarquia do DOM $(“body div”); // todas as divs dentro do body $(“body > div”); // todas as divs que estão diretamente abaixo do body $(“label + input”); // label com input adjacente (deve possuir o mesmo elemento pai)
Manipulando CSS <p>Lorem ipsum dolor sit amet</p> $(”p”).css(”font-size”); // retorna o valor do font-size do elemento p $(”p”).css(”font-size”, ”12px”); // define o font-size do elemento p para 12px
Definindo múltiplos atributos Utilizando métodos encadeados $(“p”).css(“font-size”, “24px”) .css(“font-weight”, “bold”) .css(“line-height”, “32px”); Ou um map $(“p”).css({“font-size”: “24px”, “font-weight”: “bold”, “line-height”: “32px”});
Mas... vamos com calma HTML Conteúdo CSS Apresentação JavaScript Interação
Interface CSS • DOM e CSS comunicam via IDs e Classes • Use .css() com cautela • Manipule IDs e Classes • Mais seguro e manutenível
Manipulando classes $(“p”).hasClass(“autor”); // retorna true ou false $(“p”).addClass(“bigger”); $(“p”).removeClass(“bigger”); // remove a classe passada via parâmetro $(“p”).removeClass(); // remove todas as classes $(“p”).toggleClass(“bigger”); // se o elemento tiver a classe bigger, o jQuery remove. Se não tiver, adiciona
Visibilidade $(“p.autor”).hide(); [<p class=“autor” style=“display: none”>Vitor Freitas</p>] $(“p.autor”).show(); [<p class=“autor” style=“display: normal”>Vitor Freitas</p>] $(“p.autor”).toggle(); Alterna entre hide e show
Template <html> <head> <title>jQuery na Prática</title> </head> <body> <h2>Cronograma</h2> <ul> <li>Fundamentos <spanclass=“js”>JavaScript</span></li> <li>DOM</li> <li>jQuery</li> </ul> <p>Data: <span class=“data”>21/01 à 25/01</span></p> <p>Horário: <span class=“hora”>19:00 às 22:40</span></p> </body> </html>
Acessando text e html • html Recupera todo conteúdo dentro do elemento selecionado, inclusive as tags HTML $(“p:first”).html(); [“Data: <span class=‘data’>21/01 à 25/01</span>”] • text Recupera todo texto dentro do elemento selecionado, ignorando as tags HTML $(“p:first”).text(); [“Data: 21/01 à 25/01”]
Definindo text $(“span.data”).text(“28/01 à 01/02”); <span class=“data”>21/01 à 25/01</span> <span class=“data”>28/01 à 01/02</span> • Cronograma • Fundamentos JavaScript • DOM • jQuery • Data: 21/01 à 25/01 • Horário: 19:00 às 22:40 • Cronograma • Fundamentos JavaScript • DOM • jQuery • Data: 28/01 à 01/02 • Horário: 19:00 às 22:40
Definindo text $(“span.data”).text(“<u>28/01 à 01/02</u>”); <span class=“data”>21/01 à 25/01</span> <span class=“data”><u>28/01 à 01/02</u></span> • Cronograma • Fundamentos JavaScript • DOM • jQuery • Data: 21/01 à 25/01 • Horário: 19:00 às 22:40 • Cronograma • Fundamentos JavaScript • DOM • jQuery • Data: <u>28/01 à 01/02</u> • Horário: 19:00 às 22:40
Definindo html $(“span.data”).html(“<u>28/01 à 01/02</u>”); <span class=“data”>21/01 à 25/01</span> <span class=“data”><u>28/01 à 01/02</u></span> • Cronograma • Fundamentos JavaScript • DOM • jQuery • Data: 21/01 à 25/01 • Horário: 19:00 às 22:40 • Cronograma • Fundamentos JavaScript • DOM • jQuery • Data: 28/01 à 01/02 • Horário: 19:00 às 22:40
Inserindo html no DOM $(“ul”).append(“<li>Seletores jQuery</li>”); Insere elemento dentro do final da seleção $(“ul”).prepend(“<li>Seletores jQuery</li>”); Insere elemento dentro do inicio da seleção $(“ul”).before(“<h3>Conteúdo</h3>”); Insere elemento antes da seleção $(“ul”).after(“<h3>Data e Hora:</h3>”); Insere elemento após a seleção
Append $(“ul”).append(“<li>Seletores jQuery</li>”); • Cronograma • Fundamentos JavaScript • DOM • jQuery • Seletores jQuery • Data: 21/01 à 25/01 • Horário: 19:00 às 22:40