. $(".test").hide() -esconse todos os elementos com class="test". $("#test").hide() - esconde todos os elementos com id="test" Nota: jQuery usa a sintaxe CSS para os seletores.
O evento documento pronto Você deve ter notado que todos os métodos jQuery em nossos exemplos, estão dentro de um evento documento pronto (ready): $(document).ready(function(){ // os métodos jQuery vão aqui.. }); Isso é para evitar qualquer código jQuery seja executado antes de o documento concluir o carregamento (pronto). É bom aguardar que o documento seja completamente carregado e esteja prontos antes de trabalhar com ele. Isso também permite que você tenha seu código JavaScript antes do corpo do seu documento, na secção de head. Dica: A equipe jQuery também criou um método ainda mais curto para o evento documento pronto: $(function(){ // os métodos jQuery vão aqui... }); Use a sintaxe que você preferir. Nós pensamos que o evento documento pronto é mais fácil de entender quando se lê o código.
3.Seletores jQuery seletores permitem selecionar selecionar e manipular elementos HTML (s). (s). Com seletores jQuery você pode encontrar elementos com base em ID, classes, tipos, atributos, valores de atributos e muito mais. São baseado nos Seletores CSS existentes e, além disso, possuem seus próprios seletores. Todo o tipo de seletores em jQuery, começar com o cifrão e parênteses: $(). O seletor de elementos O seletor jQuery de elemento seleciona elementos baseado-se nas tags. Você pode selecionar todos os elementos
em uma página como este seletor: $("p") O seletor #id O seletor jQuery é usado para encontrar um elemento com o atributo id especificado. Um id deve ser único dentro de uma página, então você deve usar o seletor #id quando você quiser encontrar um elemento único e exclusivo. Para encontrar um elemento com um ID específico, escrever um caractere #, seguido do ID do elemento: $("#test") Exemplo: Quando um usuário clica em um botão, o elemento com id = "test" será escondido: $(document).ready(function(){ $("button").click(function(){ $("#test").hide();
}); }); O seletor .class O seletor jQuery de classe encontra elementos com uma classe específica. Para encontrar elementos com uma classe cl asse específica, escreva um caractere ponto, seguido do nome da classe: $(".test") Exemplo: Quando um usuário clica em um botão, os elementos com class = "test" serão escondidos: $(document).ready(function(){ $("button").click(function(){ $(".test").hide(); }); }); A seguir uma tabela com todos os seletores: Seletor Exemplo
Seleciona
*
$("*")
Todos os elementos
#id
$("#lastname")
O elemento com a id=”lastname”
.class
$(".intro")
Todos os elementos da classe=”intro”
.class,.class
$(".intro,.demo")
Todos os elementos da classe “intro” ou “demo”
element
$("p")
Todos os elementos
el1,el2,el3
$("h1,div,p")
Todos os elemntos
:first
$("p:first")
O primeiro elemento
:last
$("p:last")
O último elemento
:even
$("tr:even")
Todos os elementos até
que são o primeiro filho de seu pai
:first-of-type
$("p:first-of-type")
Todos os elementos
que são o primeiro
de seu pai
:last-child
$("p:last-child")
Todos os elementos
que são o último filho do seu pai
:last-of-type
$("p:last-of-type")
Todos os elementos
que são o último
de seu pai
:nth-child(n)
$("p:nth-child(2)")
Todos os elementos
que são o segundo filho de seu pai
:nth-last-child(n)
$("p:nth-last-child(2)")
Todos os elementos
que são o segundo filho de seu pai, contando a partir do último filho
:nth-of-type(n)
$("p:nth-of-type(2)")
Todos os elementos
que são a segunda
de seu pai
:nth-last-of-type(n)
$("p:nth-last-of-type(2)")
Todos os elementos
que são o segundo
de seu pai, contando a partir do último filho
:only-child
$("p:only-child")
Todos os elementos
que são o único filho de seu pai
:only-of-type
$("p:only-of-type")
Todos os elementos
que são o único filho, de seu tipo, de seu pai
parent > child
$("div > p")
Todos os elementos
que são um filho direto direto de um elemento
que são descendentes descendentes de um elemento
que vem depois de cada elemento
que são irmãos de um elemento
:empty
$(":empty")
Todos os elementos que estão vazios
:parent
$(":parent")
Todos os elementos que são pais de um outro elemento
:hidden
$("p:hidden")
Todos os elementos ocultos
:visible
$("table:visible")
Todas as tabelas visíveis
:root
$(":root")
Elemento raiz do documento
:lang(language)
$("p:lang(de)")
Todos os elementos
com um valor de atributo lang começando com "de"
[attribute]
$("[href]")
Todos os elementos com um atributo href
[attribute=value]
$("[href='default.htm']")
Todos os os el elementos co com um um va valor de de at atributo hhrref ig igual a "default.htm"
[attribute!=value]
$("[href!='default.htm']")
Todos os elementos com um atributo href com valor diferente de "default.htm"
[attribute$=value]
$("[href$='.jpg']")
Todos os elementos com um valor de atributo href terminando com "jpg".
[attribute|=value]
$("[hreflang|='en']")
Todos os elementos com um valor de atributo hreflang começando com "en"
[attribute^=value]
$("[name^='hello']")
Todos os elementos co com um um va valor do do at atributo nnaame co começando com "Hello"
[attribute~=value]
$("[name~='hello']")
Todos os elementos com um valor do atributo name que contenha a palavra "Hello"
[attribute*=value]
$("[name*='hello']")
Todos os elementos com um valor do atributo name que contenha a string "Olá"
:input
$(":input")
Todos os elementos de input
:text
$(":text")
Todos os elementos de input do tipo text
:password
$(":password")
Todos os elementos de input do tipo password
:radio
$(":radio")
Todos os elementos de input do tipo radio
:checkbox
$(":checkbox")
Todos os elementos de input do tipo checkbox
:submit
$(":submit")
Todos os elementos de input do tipo submit
:reset
$(":reset")
Todos os elementos de input do tipo reset
:button
$(":button")
Todos os elementos de input do tipo button
:image
$(":image")
Todos os elementos de input do tipo image
:file
$(":file")
Todos os elementos de input do tipo file
:enabled
$(":enabled")
Todos os elementos de input ativados
:disabled
$(":disabled")
Todos os elementos de input desativados
:selected
$(":selected")
Todos os elementos de input selecionados
:checked
$(":checked")
Todos os elementos de input assinalados
4.Eventos Todas Todas as ações de um visitante em uma página web podem ser respondidas chamando um evento. Um evento representa o exato momento que algo acontece. Exemplos:
• • •
mover o mouse sobre um elemento selecionar um radio button clicar em um elemenento
Sintaxe para Eventos jQuery tem um evento equivalente para a maioria dos eventos DOM. Para atribuir um evento de clique para todos os parágrafos em uma página, você pode fazer isso: $("p").click(); O próximo passo é definir o que deve acontecer quando o evento é acionado. Você Você deve passar uma função para o evento: $("p").click(function(){ // a ação começa aqui!! });
4.1.Métodos de Eventos •
$(document).ready()
Permite executar uma função quando o documento está completamente carregado. •
blur()
Executada quando um elemento form perde o foco. $("input").blur(function(){ $(this).css("background-color","#ffffff"); }); •
change()
Anexa / Dispara o evento de change que ocorre quando o valor de um elemento é alterado (só funciona em campos de formulário). $("input").change(function(){ alert("The text has been changed."); }); Nota: Para menus de seleção, o evento change ocorre quando uma opção for selecionada. Para campos de texto ou áreas de texto, o evento change ocorre quando o campo perde o foco. •
click()
Executado quando o usuário clica sobre um elemento HTML. $("p").click(function(){ $(this).hide(); }); •
dblclick()
Executado quando ocorre um click-duplo sobre um elemento HTML. $("p").dblclick(function(){ $(this).hide(); }); •
event.currentTarget
A propriedade event.currentTarget event.currentTarget é o elemento DOM atual na fase de ativação do evento, e é tipicamente igual a este. $("h1,h2,p").click(function(event){ alert(event.currentTarget alert(event.currentTarget === this); }); •
event.data
A propriedade event.data contém os dados opcionais passados para um método de evento quando o atual manipulador de execução é obrigado. $("p").each(function(i){ $(this).on("click",{x:i},function(event){ alert("The " + $(this).index() + ". paragraph has data: " + event.data.x); }); }); •
event.delegateTarget
A propriedade event.delegateTarget event.delegateTarget retorna o elemento onde o ouvinte do evento foi ativado. Esta propriedade é útil para eventos de delegados ligados pelo método on(), em que o manipulador de eventos está ligado a um antepassado do elemento a ser processado. event.delegateTarget é igual a event.currentTarget, se o evento é diretamente ligado a um elemento e não ocorre nenhuma Dica: event.delegateTarget delegação. $("div").on("click","button",function(event){ $(event.delegateTarget).css("background-color", $(event.delegateTarget).css("background-color", "pink"); }); •
event.isDefaultPrevented()
Retorna se event.preventDefault () foi chamado para o objeto de evento $("a").click(function(event){ event.preventDefault(); alert("Was alert("Was preventDefault() called: " + event.isDefaultPrevented()); }); •
event.isImmediatePropagationStopped()
Retorna se Event.stopImmediatePropagation () foi chamado para o objeto de evento $("div").click(function(event){ event.stopImmediatePropagation(); alert(event.isImmediatePropagationStopped()); }); •
event.isPropagationStopped()
Retorna se event.stopPropagation () foi chamado para o objeto de evento $("div").click(function(event){ event.stopPropagation(); alert(event.isPropagationStopped()); }); •
event.namespace
Retorna o namespace especificado quando o evento foi disparado Esta propriedade pode ser usado por autores de plugins para lidar com tarefas de forma diferente, dependendo do namespace usado. Dica: Espaços de nomes que começam com um sublinhado são reservados para jQuery. $("p").on("custom.someNamespace",function(event){ alert(event.namespace); }); $("p").click(function(event){ $(this).trigger("custom.someNamespace"); }); $("button").click(function(){ $("p").off("custom.someNamespace"); }); •
event.pageX
Retorna a posição do mouse em relação à margem esquerda do documento $(document).mousemove(function(event){ $("span").text("X: " + event.pageX + ", Y: " + event.pageY); }); •
event.pageY
Retorna a posição do mouse em relação à borda superior do documento $(document).mousemove(function(event){ $("span").text("X: " + event.pageX + ", Y: " + event.pageY); }); •
event.preventDefault()
Impede a ação padrão do evento Dica: Use o método event.isDefaultPrevented() para verificar se o método preventDefault() foi chamado para o evento. $("a").click(function(event){ event.preventDefault(); });
•
event.relatedTarget
Retorna o elemento alvo do mouse $("div").mouseenter(function(event){ alert("relatedTarget alert("relatedTarget is: " + event.relatedTarget); event.relatedTarget); }); •
event.result
Contêm o último valor retornado por um ouvinte disparado por um evento especifico $("button").click(function(){ return "Hello world!"; }); $("button").click(function(event){ $("p").html(event.result); }); •
event.stopImmediatePropagation()
Impede que outros ouvintes de eventos sejam chamado (incluindo eventos de subida de árvore DOM) Dica: Use o método event.isImmediatePropagationStopped () para verificar se este método foi chamado para o evento.
$("div").click(function(event){ alert("Event handler 1 executed"); event.stopImmediatePropagation(); }); $("div").click(function(event){ alert("Event handler 2 executed"); }); $("div").click(function(event){ alert("Event handler 3 executed"); }); •
event.stopPropagation()
Impede que o evento de subida até a árvore DOM, evitando quaisquer manipuladores pais sejam notificados do evento Dica: Use o método event.isPropagationStopped() para verificar se este método foi chamado para o evento.
$("span").click(function(event){ event.stopPropagation(); alert("The span element was clicked."); }); $("p").click(function(event){ alert("The p element was clicked."); }); $("div").click(function(){ alert("The div element was clicked."); }); •
event.target
Retorna qual elemento DOM acionou o evento Muitas vezes, é útil comparar event.target a this, a fim de determinar se o evento está sendo tratada devido à subida do evento. $("p, button, h1, h2").click(function(event){ $("div").html("Triggered by a " + event.target.nodeName + " element."); }); •
event.timeStamp
Retorna o número de milissegundos desde 1 º de janeiro de 1970, quando o evento é acionado $("button").click(function(event){ $("span").text(event.timeStamp); }); •
event.type
Retorna que tipo de evento foi disparado $("p").on("click dblclick mouseover mouseout",function(event){ $("div").html("Event: " + event.type); }); •
event.which
Retorna qual tecla do teclado ou botão do mouse foi pressionado para o evento $("input").keydown(function(event){ $("div").html("Key: " + event.which); }); •
focus()
Executada quando um elemento form ganha o foco. O método focus() dispara o evento de foco, ou atribui uma função a ser executada quando ocorre um evento de foco. Dica: Este método é frequentemente usado em conjunto com o método blur (). $("input").focus(function(){ $(this).css("background-color","#cccccc"); }); •
focusin()
Anexa um ouvinte para o evento focusIn O evento focusIn ocorre quando um elemento (ou quaisquer elementos no seu interior) recebe o foco. Ao contrário do método focus (), o método focusIn () também dispara se qualquer elemento filho obter o foco. $("div").focusin(function(){ $(this).css("background-color","#FFFFCC"); }); •
focusout()
Anexa um ouvinte para o evento focusout O evento focusIn ocorre quando um elemento (ou quaisquer elementos no seu interior) perde o foco. $("div").focusout(function(){ $(this).css("background-color","#FFFFFF"); }); •
hover()
O método hover() usa duas funções e é uma combinação dos métodos mouseenter() e mouseleave(). A primeira função é executada quando o mouse entra o elemento HTML, e a segunda função é executada quando o mouse sai do elemento HTML: $("#p1").hover(function(){ alert("You alert("You entered p1!"); }, function(){ alert("Bye! You You now leave p1!"); }); •
keydown()
O evento KeyDown Ocorre quando uma tecla é pressionada. O método KeyDown() dispara o evento KeyDown, ou atribui uma função a ser executada quando ocorre um evento KeyDown. Dica: Use a propriedade event.which para retornar qual tecla do teclado foi pressionada. $("input").keydown(function(){ $("input").css("background-color","yellow"); }); •
keypress()
O evento keypress é semelhante ao evento KeyDown. O evento ocorre quando um botão é pressionado. No entanto, o evento keypress não não é acionado para todas as chaves chaves (por exemplo, ALT, ALT, CTRL, SHIFT ESC). Use o método KeyDown () para também verificar estas teclas. $("input").keypress(function(){ $("span").text(i+=1); }); •
keyup()
O evento keyup ocorre quando uma tecla do teclado é solta. O método keyup () dispara o evento keyup, ou atribui uma função a ser executada quando ocorre um evento keyup. Dica: Use a propriedade event.which para voltar qual tecla foi pressionada. $("input").keyup(function(){ $("input").css("background-color","pink"); });
•
mousedown()
Executada quando o botão do mouse é pressionado sobre o elemento HTML. $("#p1").mousedown(function(){ alert("Mouse down over p1!"); }); •
mouseenter()
Executada quando o ponteiro do mouse entra no elemento HTML. Nota: O evento mouseenter só é acionado quando o ponteiro do mouse entra o elemento selecionado. $("#p1").mouseenter(function(){ alert("You alert("You entered p1!"); }); •
mouseleave()
Executada quando o ponteiro do mouse sai do elemento HTML O evento mouseleave só dispara quando o ponteiro do mouse deixa o elemento selecionado. $("#p1").mouseleave(function(){ alert("Bye! You You now leave p1!"); }); •
mousemove()
O evento MouseMove ocorre quando o ponteiro do mouse se move dentro do elemento selecionado. O método mousemove() dispara o evento mousemove, ou atribui uma função a ser executada quando ocorre um evento mousemove. Nota: Cada vez que um usuário move o mouse um pixel, um evento mousemove ocorre. É preciso recursos do sistema para processar todos os eventos mousemove. Use este evento cuidadosamente. $(document).mousemove(function(event){ $("span").text(event.pageX + ", " + event.pageY); }); •
mouseout()
O evento mouseout ocorre quando o ponteiro do mouse deixa o elemento selecionado. O método mouseout() dispara o evento mouseout, ou atribui uma função a ser executada quando ocorre um evento mouseout. Nota: Ao contrário do evento mouseleave, o evento mouseout é acionado se um ponteiro do mouse deixa qualquer elemento filho, bem como o elemento selecionado. selecionado. $("p").mouseout(function(){ $("p").css("background-color","gray"); }); •
mouseover()
O evento mouseover ocorre quando o ponteiro do mouse está sobre o elemento selecionado. O método mouseover () dispara o evento mouseover, ou atribui uma função a ser executada quando ocorre um evento mouseover. mouseover. Nota: Ao contrário do evento mouseenter, o evento mouseover dispara se um ponteiro do mouse entra qualquer elemento filho, bem como o elemento selecionado. $("p").mouseover(function(){ $("p").css("background-color","yellow"); }); •
mouseup()
Executada quando o botão do mouse é solto dentro do elemento HTML. $("#p1").mouseup(function(){ alert("Mouse up over p1!"); }); •
off()
Remove os ouvintes adicionados com o método on() Nota: Para remover manipuladores de eventos específicos, o selector string deve coincidir com o que é passado para o método on(),
quando o manipulador de eventos foi anexado. Dica: Para colocar um evento que só acontece uma vez e, em seguida, remove-se, use o método one(). Sintaxe: $(selector).off(event,selector,function(eventObj),map)
◦
event – Obrigatório. Especifica um ou
mais eventos ou namespaces para remover do(s) elemento(s) selecionado(s).
Múltiplos valores devem ser separados por espaço. selector – Opcional. Um seletor que deve corresponder a uma originalidade passado para o método on() ao anexar manipuladores de eventos. function(eventObj) – Opcional. Especifica uma função para rodar quando o evento ocorre. função, evento: função, ...}) que contém um ou mais eventos eventos para map – Especifica um mapa do evento ({evento: função, anexar os elementos e funções para ser executado quando os eventos ocorrem ◦
◦ ◦
Exemplo: $("button").click(function(){ $("p").off("click"); }); •
on()
Adiciona ouvintes a elementos selecionados e seus filhos Nota: Os manipuladores de eventos ligados usando o método on () vão funcionar para os elementos atuais e futuros (como um novo elemento criado por um script). Dica: Para remover manipuladores de eventos, use o método off (). Dica: Para colocar um evento que só acontece uma vez e, em seguida, é removido, use o método one(). Sintaxe: $(selector).on(event,childSelector,data,function,map) mais eventos ou namespaces para serem anexados aos elementos selecionados. Valores de evento múltiplos são separadas por um espaço. childSelector – Opcional. Especifica que o manipulador de eventos só deve ser anexado aos elementos filho especificados data – Opcional. Especifica dados adicionais para passar para a função function – Obrigatório. Especifica a função a ser executada quando o evento ocorrer map – Especifica um mapa de eventos ({evento: função, evento: função, ...}) que contém um ou mais eventos para serem anexados ao elemento selecionado, e funções para serem executadas quando esses eventos ocorrem ◦
event – Obrigatório. Especifica um ou
◦
◦ ◦ ◦
$("p").on("click",function(){ alert("The paragraph was clicked."); }); •
one()
Adiciona um ou mais ouvintes para os elementos selecionados. Este manipulador só é acionado uma vez por elemento Sintaxe: $(selector).one(event,data,function) ◦
event – Obrigatório. Especifica um ou
mais eventos para anexar aos elementos. Valores Valores de evento múltiplas são
separadas por um espaço. data – Opcional. Especifica dados adicionais para passar para a função function – Obrigatório. Especifica a função a ser executada quando o evento ocorrer ◦ ◦
$("p").one("click",function(){ $(this).animate({fontSize:"+=6px"}); }); •
$.proxy()
Pega uma função existente e retorna uma nova sobre um contexto particular Este método é muitas vezes usado para anexar eventos a um elemento em que o contexto está apontando para um objeto diferente. Sintaxe: $(selector).proxy(function,context) $(selector).proxy(context,name) ◦ ◦ ◦
function –A função existente a ser chamado context –O nome do objeto em que a função está name – A função já existente cujo contexto será alterado (deve ser uma propriedade do objeto de contexto).
Exemplo: $("button").click($.proxy(objPerson,"test")); •
ready()
Especifica uma função a ser executada quando o DOM está totalmente carregado Como esse evento ocorre depois que o documento está pronto, é um bom lugar para todos os outros eventos do jQuery e funções. Dica: O método ready () não deve ser utilizado em conjunto com
Text.
"; txt1="Text.
"; // Create element with HTML var txt2=$("").text("T txt2=$("").text("Text."); ext."); // Create with jQuery var txt3=document.createElement("p"); txt3=document.createElement("p"); // Create with DOM txt3.innerHTML="Text."; com class = "italic": $("p").remove(".italic");
6.5.Manipulando classes CSS jQuery tem vários métodos para a manipulação manipulação de CSS. Nós veremos os seguintes seguintes métodos: addClass() - Adiciona uma ou mais classes para os elementos selecionados removeClass() - Remove uma ou mais classes a partir dos elementos selecionados toggleClass() - Alterna entre adição / remoção de classes a partir dos elementos selecionados css() - Define ou retorna o atributo de estilo • • • •
Exemplo CSS: A folha de estilo a seguir será usado por todos os exemplos nesta página: .important { font-weight:bold; font-size:xx-large; } .blue { color:blue; } Método addClass() $("button").click(function(){ $("h1,h2,p").addClass("blue"); $("div").addClass("important"); }); Você também pode especificar várias classes dentro do método addClass (): $("button").click(function(){ $("#div1").addClass("important blue"); });
Método removeClass() $("button").click(function(){ $("h1,h2,p").removeClass("blue"); }); Método toggleClass() $("button").click(function(){ $("h1,h2,p").toggleClass("blue"); }); Método css() O método css() define ou retorna uma ou mais propriedades de estilo de um dado elemento. Retornando uma propriedade CSS Para retornar o valor de uma propriedade CSS especifica, use a seguinte sintaxe: css("propertyname"); Por exemplo: $("p").css("background-color"); Definindo uma propriedade CSS Para definir o valor de uma propriedade CSS especifica, use a seguinte sintaxe: css("propertyname","value"); Por exemplo: $("p").css("background-color","yellow"); Definindo múltiplas propriedades CSS Para definir múltiplas propriedades CSS, use as seguinte sintaxe: css({"propertyname":"value","propertyname":"value",...}); Por exemplo: $("p").css({"background-color":"yellow","font-size":"200%"});
6.6.Dimensão jQuery tem vários métodos importantes importantes para trabalhar com dimensões: • • •
width() height() innerWidth() •
•
•
innerHeigh t() outerWidt h() outerHeigh t()
Métodos width() e height() O método width() define ou retorna a largura de um elemento (não inclui o preenchimento, borda ou margem). O método height() define ou retorna a altura de um elemento (não inclui o preenchimento, borda ou margem). O exemplo a seguir retorna a largura e altura de um elemento
This is some text in a paragraph.
O exemplo seguinte carrega o conteúdo do arquivo "demo_test.txt" em um elementoRequesting: " + opt.url + "
"); }); • • •