Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>jQuery</strong> <strong>na</strong> <strong>Prática</strong> (http://vitorfs.com/jquery-<strong>na</strong>-pratica)<br />
Home (index.html) Sobre (sobre.html) Downloads (downloads.html)<br />
GitHub (http://github.com/vitorfs/jquery-<strong>na</strong>-pratica)<br />
Fundamentos JavaScript<br />
Seletores <strong>jQuery</strong><br />
Manipulando CSS<br />
Manipulando Conteúdo<br />
Eventos<br />
Animação<br />
Funções <strong>jQuery</strong><br />
Ajax<br />
Formulários<br />
Fundamentos JavaScript<br />
Experiência em programação com linguagens como C, Visual Basic ou Java é útil, mas não obrigatório.<br />
Variáveis<br />
Dê nome aos dados utilizando a palavra reservada var . Normalmente o nome da variável é escrita em<br />
s<strong>na</strong>ke_case . Linha termi<strong>na</strong> em ponto e vírgula.<br />
var titulo = "<strong>jQuery</strong> <strong>na</strong> <strong>Prática</strong>";<br />
JavaScript é uma linguagem de tipagem fraca, dinâmica e implícita.<br />
var numero = 100;<br />
//int<br />
var titulo = "<strong>jQuery</strong> <strong>na</strong> <strong>Prática</strong>"; //string<br />
var quantidade = 5.7;<br />
//float<br />
var erro = true;<br />
//boolean<br />
Funções<br />
Crie funções utilizando a palavra reservada function . Normalmente o nome da função é escrita em camelCase .
function soma (num1, num2) {<br />
var resultado;<br />
resultado = num1 + num2;<br />
return resultado;<br />
}<br />
Funções Globais<br />
A função alert exibe um pop-up no browser do usuário com a mensagem passada via parâmetro.<br />
alert("Olá, mundo!");<br />
A função confirm exibe uma caixa de confirmação ao usuário. Retor<strong>na</strong> true ou false .<br />
var resposta = confirm("Confirmar exclusão do registro?");<br />
A função prompt retor<strong>na</strong> o valor informado pelo usuário em forma de string<br />
var idade = prompt("Informe sua idade:");<br />
Funções de String<br />
charAt Retor<strong>na</strong> o char no índice especificado.<br />
var titulo = "<strong>jQuery</strong> <strong>na</strong> <strong>Prática</strong>";<br />
titulo.charAt(2); // "u"<br />
concat Combi<strong>na</strong> o texto de duas strings e retor<strong>na</strong> uma nova string.<br />
contains Determi<strong>na</strong> se uma string está contida em outra.<br />
endsWith Determi<strong>na</strong> se uma string termi<strong>na</strong> com os caracteres de outra string<br />
indexOf Retor<strong>na</strong> o índice da primeira ocorrência da string passada por parâmetro, ou -1 se não encontrar.<br />
lastIndexOf Retor<strong>na</strong> o índice da última ocorrência da string passada por parâmetro, ou -1 se não encontrar.<br />
replace Utilizado para combi<strong>na</strong>r uma excodessão regular com uma string e substituir a substring que atender ao<br />
regex por uma nova substring.<br />
"<strong>jQuery</strong> <strong>na</strong> <strong>Prática</strong>".replace("a", "4"); // "<strong>jQuery</strong> n4 Prátic4"<br />
slice Extrai parte de uma string e retor<strong>na</strong> uma nova string.<br />
split Dividir um objeto String em uma array de strings.<br />
"<strong>jQuery</strong> <strong>na</strong> Pratica".split(" "); // ["<strong>jQuery</strong>", "<strong>na</strong>", "<strong>Prática</strong>"]<br />
startsWith Determi<strong>na</strong> se a string começa com os caracteres de outra string.<br />
substr Retor<strong>na</strong> os caracteres em uma string que inicia em um determi<strong>na</strong>do índice com um tamanho especificado<br />
de caracteres.<br />
substring Retor<strong>na</strong> os caracteres em uma string entre dois índices de uma string.<br />
toLowerCase Retor<strong>na</strong> a string que chamou o método convertido para caixa baixa.
"<strong>jQuery</strong> <strong>na</strong> Pratica".toLowerCase(); // "jquery <strong>na</strong> prática"<br />
toUpperCase Retor<strong>na</strong> a string que chamou o método convertido para caixa alta.<br />
"<strong>jQuery</strong> <strong>na</strong> <strong>Prática</strong>".toUpperCase(); // "JQUERY NA PRÁTICA"<br />
Arrays<br />
Arrays no JavaScript são objetos do tipo lista que não possuem tamanho nem tipo de dado pré-definido.<br />
var frutas = ["maçã", "uva", "abacaxi"]; // Inicializa um array <strong>na</strong> variável frutas<br />
frutas[2]; // Retor<strong>na</strong> a posição 2, "abacaxi"<br />
frutas.length; // Retor<strong>na</strong> o tamanho da lista, 3<br />
frutas.reverse(); // Retor<strong>na</strong> a lista em ordem inversa, ["abacaxi", "uva", "maçã"]<br />
Seletores <strong>jQuery</strong><br />
O <strong>jQuery</strong> oferece um poderoso conjunto de ferramentas para selecio<strong>na</strong>r elementos em um documento, utilizando<br />
as especificações do CSS 1-3 e adicio<strong>na</strong>ndo recursos extras.<br />
Seletores básicos<br />
$("*") selecio<strong>na</strong> todos os elementos do documento.<br />
$(".class") selecio<strong>na</strong> todos os elementos de uma determi<strong>na</strong>da classe.<br />
$("p.autor"); // todos elementos com classe autor<br />
$(".destacar"); // todos elementos que possuam classe destacar<br />
$("elemento") selecio<strong>na</strong> todos os elementos de uma pági<strong>na</strong> dado uma tag.<br />
$("#id") selecio<strong>na</strong> um único elemento com o id informado.<br />
$("seletor1, seletor2, seletorN") selecio<strong>na</strong> todos os elementos conforme os seletores especificados.<br />
Seletores de atributos<br />
[<strong>na</strong>me*="value"] Selecio<strong>na</strong> todos os elementos com um valor dado uma substring.<br />
[<strong>na</strong>me$="value"] Selecio<strong>na</strong> todos os elementos que termi<strong>na</strong>m com atributo<br />
[<strong>na</strong>me="value"] Selecio<strong>na</strong> todos os elementos que o atributo for igual ao valor informado.<br />
[<strong>na</strong>me!="value"] Selecio<strong>na</strong> todos os elementos que o atributo for diferente do valor informado.<br />
[<strong>na</strong>me^="value"] Selecio<strong>na</strong> todos os elementos cujo atributo inicia com a substring informada.<br />
[<strong>na</strong>me] Selecio<strong>na</strong> todos os elementos que possuam um determi<strong>na</strong>do atributo<br />
[<strong>na</strong>me="value"][<strong>na</strong>me2="value2"] Selecione múltiplos atributos<br />
Filtros de seleção
Os filtros de seleção são baseados no index da array de retorno do seletor.<br />
:first Retor<strong>na</strong> o primeiro elemento da seleção.<br />
:last Retor<strong>na</strong> o último elemento da seleção.<br />
:eq() Retor<strong>na</strong> o elemento com um índice específico.<br />
:even Retor<strong>na</strong> todos os elementos com índice par.<br />
:odd Retor<strong>na</strong> todos os elementos com índice ímpar.<br />
Manipulando CSS<br />
.css() Utilizado para recuperar ou definir um determi<strong>na</strong>do atributo css ao elemento selecio<strong>na</strong>do.<br />
$("p").css("font-size"); // retor<strong>na</strong> o valor do font-size do elemento <br />
$("p").css("font-size", "12px"); // define o font-size do elemento para 12px<br />
$(p").css(font-size", 24px")<br />
.css(font-weight", bold")<br />
.css(line-height", 32px");<br />
// ou um map<br />
$(p").css({font-size": 24px",<br />
font-weight": bold",<br />
line-height": 32px"});<br />
.addClass() Adicio<strong>na</strong> uma determi<strong>na</strong> classe ao elemento.<br />
.removeClass() Remove uma determi<strong>na</strong>da classe do elemento. Se o parâmetro for omitido, remove todas as<br />
classes do elemento.<br />
.toggleClass() Alter<strong>na</strong> entre incluir e remover uma determi<strong>na</strong>da classe. Se o elemento já possuir uma classe, o<br />
<strong>jQuery</strong> remove. Se não possuir, inclui.<br />
.hasClass() Retor<strong>na</strong> true caso o elemento possua a classe ou false caso contrário.<br />
Visibilidade<br />
.show() Altera o display do elemento para normal .<br />
.hide() Altera o display do elemento para none .<br />
.toggle() Alter<strong>na</strong> entre normal e none .<br />
Manipulando Conteúdo<br />
.html() Retor<strong>na</strong> o conteúdo html da seleção.<br />
.text() Retor<strong>na</strong> o conteúdo texto da seleção.<br />
.append() Insere conteúdo dentro do fi<strong>na</strong>l da seleção.
.prepend() Insere conteúdo dentro do início da seleção.<br />
.before() Insere conteúdo antes da seleção.<br />
.after() Insere conteúdo após a seleção.<br />
Eventos<br />
Estes métodos são utilizados para adicio<strong>na</strong>r comportamento que reagem à interação do usuário com o browser.<br />
Eventos de Mouse<br />
.click() Dispara no evento de click do mouse<br />
$("p").click(function () {<br />
});<br />
$("p").hide();<br />
.dblclick() Dispara com click duplo<br />
.hover() Dispara quando mouse entra e/ou sai do elemento<br />
$("p").hover(<br />
function () { $(this).addClass("destacar");},<br />
function () { $(this).removeClass("destacar");}<br />
);<br />
.mousedown() Dispara quando o botão do mouse é pressio<strong>na</strong>do.<br />
.mouseenter() Dispara quando o mouse entra no elemento.<br />
.mouseleave() Dispara quando o mouse sai do elemento.<br />
.mousemove() Dispara quando o mouse se move.<br />
.mouseup() Dispara quando ao término do click do mouse.<br />
Eventos de Teclado<br />
.keydown() Dispara ao apertar a tecla.<br />
.keypress() Dispara ao pressio<strong>na</strong>r a tecla.<br />
.keyup() Dispara ao soltar a tecla.<br />
Eventos de Formulário<br />
.blur() Dispara ao input perder o foco.<br />
.change() Dispara quando um valor é alterado.<br />
.focus() Dispara quando um input recebe foco.<br />
.select() Dispara ao selecio<strong>na</strong>r um texto, option, radio.
.submit() Dispara submeter o formulário.<br />
Objeto Event<br />
$("body").keypress(function (event) {<br />
});<br />
event.which código númerico da tecla pressio<strong>na</strong>da.<br />
event.preventDefault() evita a ação padrão do browser.<br />
event.stopPropagation() evita propagação do evento no DOM.<br />
Animação<br />
Slide<br />
.slideUp([duração][,callback])<br />
duração<br />
Tempo da animação em milisegundos<br />
Default 400 milisegundos<br />
Aceita parâmetros "slow" (600ms) e "fast" (200ms)<br />
callback<br />
Função que será executada após o término da animação<br />
$("p").slideUp("slow");<br />
$("p").slideUp(1000, function () {<br />
});<br />
alert("Concluiu a animação!");<br />
$("p").slideDown("fast");<br />
$("p").slideToggle();<br />
Fade<br />
.slideIn([duração][,callback])<br />
duração<br />
Tempo da animação em milisegundos<br />
Default 400 milisegundos<br />
Aceita parâmetros "slow" (600ms) e "fast" (200ms)<br />
callback<br />
Função que será executada após o término da animação
$("p").slideIn("slow");<br />
$("p").slideIn(1000, function () {<br />
});<br />
alert("Concluiu a animação!");<br />
$("p").slideOut("fast");<br />
$("p").fadeToggle();<br />
Funções <strong>jQuery</strong><br />
É possível adicio<strong>na</strong>r funções ao prototype do <strong>jQuery</strong>, o que permite chamá-las utilizando a seguinte notação:<br />
$("this").destacar() .<br />
$.fn.vazio = function () {<br />
var value = $(this).val();<br />
if (value == "") {<br />
return true;<br />
}<br />
else {<br />
return false;<br />
}<br />
};<br />
$("input").vazio();<br />
Ajax<br />
A biblioteca <strong>jQuery</strong> conta com uma solução completa de AJAX. As funções e métodos contidos nela nos permite<br />
carregar dados do servidor sem recarregar a pági<strong>na</strong> no browser.<br />
$.ajax<br />
$.ajax([opcoes])<br />
O parâmetro opcoes é um map que aceita os seguintes valores:<br />
async default: true<br />
Tipo: Boolean<br />
Define se a requisição será síncro<strong>na</strong> ou assíncro<strong>na</strong>.<br />
beforeSend<br />
Tipo: Function
Função que será executada antes de realizar a requisição.<br />
cache (default: true, false para dataType 'script' e 'jsonp')<br />
Tipo: Boolean<br />
Determi<strong>na</strong> se a requisição será armaze<strong>na</strong>da no cache do browser do usuário ou não.<br />
complete<br />
Tipo: Function<br />
Função que será executada após a conclusão da requisição.<br />
contentType (default: 'application/x-www-form-urlencoded; charset=UTF-8')<br />
Tipo: String<br />
data<br />
Tipo: Object, String<br />
Representa os dados que serão enviados para o servidor<br />
dataType (default: Intelligent Guess (xml, json, script, or html))<br />
Tipo: String<br />
error<br />
Tipo: Function<br />
Função que será executada em caso de erro.<br />
success<br />
Tipo: Function<br />
Função que será executada em caso de sucesso.<br />
timeout<br />
Tipo: Number<br />
Define o tempo em milisegundos em que a requisição irá aguardar antes de dar timeout.<br />
type (default: 'GET')<br />
Tipo: String<br />
Define se a requisição será do tipo GET ou POST .
url (default: Pági<strong>na</strong> atual)<br />
Tipo: String<br />
Define a pági<strong>na</strong> para onde a requisição será feita.<br />
Exemplo de uma requisição assíncro<strong>na</strong> utilizando a função $.ajax :<br />
$.ajax({<br />
url: 'usuarios.php',<br />
data: { id: "10", acao: "editar" },<br />
cache: false,<br />
type: "POST",<br />
beforeSend: function () {<br />
// execução antes de realizar requisição<br />
},<br />
success: function (data) {<br />
// execução em caso de sucesso<br />
},<br />
error: function () {<br />
// execução em caso de erro<br />
}<br />
complete: function () {<br />
// execução ao termi<strong>na</strong>r requisição<br />
}<br />
});<br />
$.load<br />
Permite especificar um elemento para receber a resposta e uma função de callback.<br />
$('#resultado').load('usuarios.php');<br />
// A resposta da requisição à pági<strong>na</strong> usuarios.php é inserida dentro do elemento #resultado<br />
$('#resultado').load('usuarios.php', function () {<br />
});<br />
// Executa após termi<strong>na</strong>r a requisição<br />
$('#resultado').load('usuarios.php', { id: 10 } function () {<br />
// Executa após termi<strong>na</strong>r a requisição<br />
});<br />
$.post<br />
$.post(url [,data] [,success(data, textStatus, jqXHR)] [,dataType])<br />
O método post do <strong>jQuery</strong> corresponde à seguinte implementação:
$.ajax({<br />
type: "POST",<br />
url: url,<br />
data: data,<br />
success: success,<br />
dataType: dataType<br />
});<br />
$.post("login.php", { usuario: "vitorfs", senha: "123456" });<br />
$.post("login.php", $("form").serialize(), function () {<br />
// Executa callback<br />
});<br />
$.get<br />
$.get(url [,data] [,success(data, textStatus, jqXHR)] [,dataType])<br />
O método get do <strong>jQuery</strong> corresponde à seguinte implementação:<br />
$.ajax({<br />
url: url,<br />
data: data,<br />
success: success,<br />
dataType: dataType<br />
});<br />
$.get("cidades.php", { uf: "mg" }, function (data) {<br />
});<br />
$("select").html(data);<br />
Formulários<br />
Serializando um Formulário<br />
A função .serialize() do <strong>jQuery</strong> nos permite formatar os dados de um formulário. Considere o seguinte<br />
formulário:<br />
<br />
Nome: <br />
Email: <br />
Cpf: <br />
Enviar<br />
<br />
Ao executarmos o comando $("#cadastro").serialize() teríamos o seguinte retorno:<br />
nome=Vitor&email=vitorfs@gmail.com&cpf=123456789012
Serializando em Array<br />
Considerando o mesmo formulário, ao executar a chamada $("#cadastro").serializeArray() teríamos o seguinte<br />
retorno:<br />
[<br />
{<br />
<strong>na</strong>me = “nome”,<br />
value = “vitor”<br />
},<br />
{<br />
<strong>na</strong>me = “email”,<br />
value = “vitorfs@gmail.com”<br />
},<br />
{<br />
<strong>na</strong>me = “cpf”,<br />
value = “123456789012”<br />
}<br />
]