Escolar Documentos
Profissional Documentos
Cultura Documentos
Captulo 01
Introduo
A jQuery uma biblioteca JavaScript, cross-browser,
desenvolvida por John Resig. Foi lanada em janeiro de 2006,
e se tornou uma das bibliotecas JavaScript mais populares da
internet.
A biblioteca disponibilizada como software livre e
disponibilizada sobre as regras das licenas MIT e GPL. Ou
seja, uma biblioteca que pode ser utilizada tanto para
projetos pessoais como para projetos comerciais, sem a
necessidade de pagar qualquer tipo de licena de uso.
Introduo
Foi criada tendo como foco a simplicidade e com o objetivo
de facilitar a programao JavaScript. Programas que
utilizariam linhas e mais linhas de cdigo para obter um
determinado efeito ou carregar um componente AJAX, so
substitudos por poucas instrues utilizando jQuery o que
permite o uso dela por designers e desenvolvedores com
pouco conhecimento de JavaScript.
Introduo
jQuery no uma nova linguagem de programao, antes,
trata-se de uma compilao do JavaScript. Para utiliz-la,
basta referenciar o arquivo .js do jQuery em sua pgina e voc
j pode usar esta linguagem com prazer.
Recomenda-se que todo o cdigo produzido tambm esteja
em um arquivo externo; isso diminu o tamanho final de sua
pgina HTML e tambm assegura que o cdigo no ficar
exposto, tornando as coisas mais fcies, caso voc queira
mudar um cdigo que aparea em todas as suas pginas
Compatibilidade
A jQuery foi criada para ser uma biblioteca compatvel com
qualquer navegador Web. Ela resolve para o programador a
penosa tarefa de desenvolver programas em JavaScript tendo
que prever a enorme gama de navegadores em que sua pgina
poder rodar.
Sabemos que cada navegador tem seu prprio conjunto de
caractersticas de implementao, que ainda podem variar de
acordo com a plataforma e sistema operacional onde estiver
rodando.
Com a jQuery, a programao nica e transparente.
Compatibilidade
A jQuery foi criada para ser uma biblioteca compatvel com
qualquer navegador Web. Ela resolve para o programador a
penosa tarefa de desenvolver programas em JavaScript tendo
que prever a enorme gama de navegadores em que sua pgina
poder rodar.
Sabemos que cada navegador tem seu prprio conjunto de
caractersticas de implementao, que ainda podem variar de
acordo com a plataforma e sistema operacional onde estiver
rodando.
Com a jQuery, a programao nica e transparente.
Obtendo e instalando a
jQuery
A query pode ser obtida gratuitamente no site http://jquery.
com/. Na pgina principal, no lado direito da pgina h um boto
de Download (jQuery) onde podemos escolher entre duas
verses:
Obtendo e instalando a
jQuery
PRODUCTION : a verso voltada para ambiente de produo.
uma verso com o cdigo em formato minimizado, sem quebras
de linha e com o cdigo obscurecido. Essa verso tem em torno
de 15% do tamanho da verso de Desenvolvimento
(DEVELOPMENT).
DEVELOPMENT: a verso de desenvolvimento. a verso no
compactada da bibliteca e com o cdigo no obscurecido. ideal
para ambientes de desenvolvimento por se integrar facilmente
s ferramentas e IDEs.
Obtendo e instalando a
jQuery
Basta escolher a verso que voc deseja baixar e clicar em
Download. A biblioteca abrir em formato de cdigo JavaScript
no prprio navegador, e voc dever clicar em Arquivo > Salvar e
guardar a biblioteca na sua pasta de desenvolvimento.
Usualmente guardamos a biblioteca com o nome jquery-1.11.1.
min.js quando for a verso compactada, ou com o nome jquery1.11.1.js quando for a verso de desenvolvimento.
Preferencialmente, salve a jQuery em uma pasta "js" dentro da
sua pasta principal de desenvolvimento, ou na raiz do seu site.
$(document).ready()
Voc no pode manipular a pgina com segurana at o
documento estar "pronto" (ready).
O jQuery detecta o estado de prontido para voc; o cdigo
incluido dentro de $(document).ready() somente ir rodar
depois que a pgina estiver pronta executar o cdigo JavaScript.
Um bloco $(document).ready()
$(document).ready(function() {
console.log('pronto!');
});
H um atalho para $(document).ready() que voc ver algumas
vezes; entretando, eu no recomendo us-lo se voc estiver
escrevendo cdigo que pessoas que no tm experincia com
jQuery poder ver.
Selecionando elementos
O conceito mais bsico do jQuery "selecionar alguns elementos
e fazer alguma coisa com eles." O jQuery suporta a maioria dos
seletores CSS3, assim como alguns seletores no-padro. Para
uma referncia completa de seletores, visite
http://api.jquery.com/category/selectors/.
A seguir, alguns exemplos de tcnicas comuns de seleo.
Pseudo-seletores
$('a.external:first');
$('tr:odd');
$('#myForm :input'); // selecione todos os elementos input num formulrio
$('div:visible');
$('div:gt(2)'); // todos exceto as trs primeiras divs
$('div:animated'); // todas as divs com animao
Pseudo-seletores
Quando voc usa os pseudos-seletores :visible e :hidden, o jQuery testa a
visibilidade atual do elemento, no os atributos visibility ou display do CSS ou seja, ele olha se a altura e a largura fsica do elemento na pgina so
ambas maiores que zero.
Pseudo-seletores
No entanto, este teste no funciona com elementos <tr>; neste caso, o
jQuery faz a verificao da propriedade display do CSS, e considera um
elemento como oculto se sua propriedade display for none. Elementos que
no forem adicionados no DOM sero sempre considerados ocultos, mesmo
que o CSS que os afetam torn-los visveis. (Consulte a seo de Manipulao
mais adiante neste captulo para aprender como criar e adicionar elementos
ao DOM).
Pseudo-seletores
Para referncia, aqui est o cdigo que jQuery usa para determinar se um
elemento visvel ou oculto, com os comentrios adicionados para maior
esclarecimento:
Pseudo-seletores
jQuery.expr.filters.hidden = function( elem )
{
var width = elem.offsetWidth, height = elem.
offsetHeight,
skip = elem.nodeName.toLowerCase() === "tr";
// o elemento tem 0 de altura e 0 de largura e
// no uma <tr>?
return width === 0 && height === 0 && !skip ?
// ento deve estar escondido
true :
// mas se o elemento tiver largura e altura
// e no for uma <tr>
width > 0 && height > 0 && !skip ?
// ento deve estar visvel
false :
Escolhendo seletores
Escolher bons seletores uma forma de melhorar a performance do seu
JavaScript. Uma pequena especificidade - por exemplo, incluir um elemento
como div quando selecionar elementos pelo nome da classe - pode ir por um
longo caminho.
Geralmente, sempre que voc puder dar ao jQuery alguma dica sobre onde
ele pode esperar encontrar o que voc estiver procurando, voc deve dar.
Por outro lado, muita especificidade pode no ser muito bom. Um seletor
como #myTable thead tr th.special um desperdcio se um seletor como
#myTable th.special lhe dar o que voc precisa.
Escolhendo seletores
O jQuery oferece muitos seletores baseados em atributo, permitindo que
voc selecione elementos baseados no contedo de atributos arbitrrios
usando expresses regulares simplificadas.
// encontre todos elementos <a>s em que o atributo
// rel termine com "thinger"
$("a[rel$='thinger']");
Escolhendo seletores
Se por um lado estes seletores podem ser bem teis, eles tambm podem ser
extremamente lerdos - Uma vez eu escrevi um seletor baseado em atributos
que travou minha pgina por mltiplos segundos.
Sempre que possvel, faa suas selees usando IDs, nomes de classe e nomes
de tags.
Escolhendo seletores
Quer saber mais? Paul Irish (http://www.paulirish.com/2009/perf/) tem uma
excelente apresentao sobre melhorar a performance do JavaScript, com
vrios slides focando especificamente em performace de seletores.
Salvando selees
Toda vez que voc faz uma seleo, um monte de cdigo executado, e o
jQuery no faz caching de selees para voc.
Se voc fez uma seleo que voc talvez precise fazer novamente, voc deve
salvar a seleo numa varivel ao invs de fazer a seleo vrias vezes.
Armazenando selees em
variveis
var $divs = $('div');
No , o nome da varivel comea com um sinal de dlar. Ao invs de outras
linguagens, no h nada especial sobre o sinal de dlar em JavaScript --
apenas outro caracter. Ns o usamos para indicar que a varavel contm um
objeto jQuery. Esta prtica -- um tipo de Notao Hngara (http://pt.
wikipedia.org/wiki/Nota%C3%A7%C3%A3o_h%C3%BAngara) -- meramente
uma conveno, e no obrigatria.
Armazenando selees em
variveis
Uma vez que voc armazenou sua seleo, voc pode chamar os mtodos do
jQuery na varivel que voc armazenou, da mesma forma que voc faria na
seleo original.
Uma seleo somente obtm os elementos que esto na pgina quando voc
faz a seleo. Se voc adicionar elementos na pgina depois, voc ter que
repetir a seleo ou ento adicion-la seleo armazenada na varivel.
Selees armazenadas no atualizam automaticamente quando o DOM
muda.
Refinando selees
$('div.foo').has('p');
// o elemento div.foo que contm <p>`s
$('h1').not('.bar');
// elementos h1 que no tm a classe bar
$('ul li').filter('.current'); // itens de listas no-ordenadas com a classe current
$('ul li').first();
// somente o primeiro item da lista no ordenada
$('ul li').eq(5);
// o sexto item da lista
Seletores relacionados
formulrios
O jQuery oferece vrios pseudo-seletores que lhe ajudam a encontrar
elementos nos seus formulrios; estes so especialmente teis porque pode
ser difcil distinguir entre elementos form baseados no seu estado ou tipo
usando seletores CSS padro.
Seletores relacionados
formulrios
:button
Seleciona elementos do tipo <button> e elementos com type="button"
:checkbox
Seleciona inputs com type="checkbox"
:checked
Seleciona inputs selecionados
:disabled
Seleciona elementos de formulrio desabilitados
:enabled
Seleciona elementos de formulrio habilitados
Seletores relacionados
formulrios
:file
Seleciona inputs com type="file"
:image
Seleciona inputs com type="image"
:input
Seleciona <input>, <textarea>, e elementos <select>
:password
Seleciona inputs com type="password"
Seletores relacionados
formulrios
:radio
Seleciona inputs com type="radio"
:reset
Seleciona inputs com type="reset"
:selected
Seleciona inputs que esto selecionados
:submit
Seleciona inputs com type="submit"
:text
Seleciona inputs com type="text"
Usando pseudo-seletores
relacionados formulrios
$('#myForm :input'); // obtm todos os elementos que aceitam entrada de
dados
Encadeamento
Se voc chamar um mtodo numa seleo e este mtodo retornar um objeto
jQuery, voc pode continuar a chamar mtodos do jQuery sem precisar
pausar com um ponto-e-vrgula.
$('#content').find('h3').eq(2).html('o novo texto do terceiro h3!');
Se voc estiver escrevendo uma cadeia que inclui vrios passos, voc (e a
pessoa que vir depois de voc) talvez ache seu cdigo mais legvel se voc
quebrar o cdigo em vrias linhas.
Formatando cdigo
encadeado
$('#content')
.find('h3')
.eq(2)
.html('novo texto do terceiro h3!');
Se voc mudar sua seleo no meio de uma cadeia, o jQuery prov o mtodo
$.fn.end para voc voltar para sua seleo original.