SlideShare una empresa de Scribd logo
1 de 56
HTML DOM Ricardo Cavalcanti kvalcanti@gmail.com
Algumas Ferramentas “Firebug integrates with Firefox to put a wealth of web development tools at your fingertips while you browse. You can edit, debug, and monitor CSS, HTML, and JavaScript live in any web page!” http://getfirebug.com
JavacriptBasico: tag <script> <script type="text/javascript">document.write("Hello World!");</script> É executadoassimquecarregado Se o script alterar a página, coloque no final Colocar no final é sempreuma boa prática document.write() Output para a página
Javascript Básico: arquivo .js Para incluir arquivos externos <script type="text/javascript“ src="xxx.js"></script> Boa prática: minifique e unifique os arquivos .js YUI Compressor e Google ClosureCompiler
Browser objects
Browser objects: window Representa uma janela aberta no browser alert( msg ) confirm() window.location Informações sobre a URL window.screen window.history window.navigator
Browser objects: window.navigator Informações sobre o browser cookieEnabled appName userAgent
Browser objects: window.history Para navegar pelo histórico back() forward() go()
DOM: introdução DocumentObjectModel: um conjunto de interfaces Uma API para HTML e XML Representação estrutural do documento Permite modificação do conteúdo e do visual Liga as páginas aos scripts
DOM: documento HTML <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  "http://www.w3.org/TR/html4/strict.dtd"> <html> 	 <head> 		 <meta http-equiv="Content-Type"  content="text/html; charset=UTF-8" /> 		 <title>ToDolist</title> 	 </head> 	 <body> 		 <div>What I need to do.</div> 		 <p title="ToDolist">Mylist:</p> 		 <ul> 			 <li>Finishpresentation</li> 			 <li>Cleanupmy home.</li> 			 <li>Buy a bottleofmilk.  (Maybebeerwillbebetter?;) </li> 		 </ul> 	 </body> </html> html Head body Meta title div P ul title li
DOM: encontrando elementos <input type="text" id="message" value="Messagesgoeshere..."/> ... var msgInput = document.getElementById("message"); <ul id="list"> 	 <li>Item 1</li> 	 <li>Item 2</li> 	 <li>Item 3</li> </ul> ... var items = document.getElementsByTagName("li");
DOM: elements <p title="ToDo list">My tasks</p> Tipos de nodes HTML element Attribute Textnode p title Textnode ToDo list My tasks
DOM: atributos de Element nodeName nodeValue nodeType parentNode childNodes firstChild lastChild previousSibling nextSibling attributes ownerDocument
DOM: objeto document A raiz para a árvore DOM document.getElementById document.getElementsByName document.getElementsByTagName
DOM: manipulação do DOM var item = document.createElement("li"); var text = document.createTextNode(message); item.appendChild(text); parent.appendChild(item); parent.insertBefore(someNode, item); parent.innerHTML = parent.innerHTML + ("<li>"+message+"</li>"); parent.removeChild(item);
DOM: element.style É possível mudar o visual do elemento através do javacript var el = document.getElementById(“myDiv”); el.style.display= “none”;
Vamos praticar?
Eventos
Eventos: introdução Para tornar páginas dinâmicas Funções que executarão quando eventos ocorrerem O retorno da função pode bloquear a execução de uma ação posterior
Eventos: definindo eventos Inline, na tag html <input type="text" size="30" id="email" onchange="checkEmail()"> functioncheckEmail(){   //... } Não use!  É ruim escrever código javascript no meio do html
Eventos: definindo eventos Diretamente no elemento <input type="text" size="30" id="email" > var elEmail = document.getElementById(“email”); elEmail.onchange = function(){ ...}; Posso executar a função do evento elEmail.onchange() thisé o elemento onde ocorreu o evento Desvantagem: apenas uma função por evento.
Eventos: modelos avançados Adicionando um eventhandler var addBtn = document.getElementById("addBtn"); //... addBtn.addEventListener('click',  function(){ 	 //codegoeshere },false); addBtn.attachEvent('click', function(){ 	 //codegoeshere }); thisé o elemento onde ocorreu o evento
Eventos: capturing & bubbling Se ambos tiverem onclick, qual é executado primeiro? Capturing: div a primeiro Bubbling: div b primeiro W3C definiu as duas possibilidades addEventListener(“click”, fn, boolean) False: capturing True: bubling
Eventos: eventos de mouse mousedown mouseup click dblclick mousemove A cada pixel mouseover mouseout
Eventos: teclas keydown keypress keyup functionnoNumbers(e) {var keynum,  keychar, numcheck; if(window.event) { // IE keynum = e.keyCode} elseif(e.which) { //FF keynum = e.which 	} keychar = String.fromCharCode(keynum); numcheck = //;return !numcheck.test(keychar); } <input type="text" onkeydown="return noNumbers(event)" />
Eventos: outros eventos blur focus
Vamos praticar?
JQuery
jQuery: introdução Escondendo divs com javacript divs = document.getElementByTagName(‘div’); 	for (i = 0; i < divs.length; i++) { divs[i].style.display = ‘none’; }
jQuery: introdução Escondendo divs com javacript divs = document.getElementByTagName(‘div’); 	for (i = 0; i < divs.length; i++) { divs[i].style.display = ‘none’; } Escondendo divs com jquery $(‘div’).hide();
jQuery: filosofia Encontre HTML Faça alguma coisa $() função seletora O mesmo que jQuery() Incluam na página http://code.jquery.com/jquery-1.4.3.min.js Ou baixem em http://jquery.com/
Jquery: Seletores
jQuery: seletores CSS Um pouco de CSS #myId encontra o elemento com o id ‘myId’ .myClass encontra todos os elementos com a class ‘myClass’ table encontra todos os elementos com a tagtable table#myId encontra a tabela com id ‘myId’ table #myId encontra o elemento com id ‘myId’ que esteja dentro de um table
jQuery: seletores $(‘#myId’) pega o elemento com o id ‘myId’ $(‘li:first’) pega o primeiro li $(‘tr:odd’) pega todas as tablerows ímpares $(‘a[target=_blank]’) pega todos os a cujo target é _blank $(‘form[id^=step]’) pega todos os forms cujo id começa com ‘step’
jQuery: seletores CSS Depois de achar $(‘#myId’) Fazer $(‘#myId’).addClass(‘redbox’);
jQuery: coisas legais Métodos encadeados $(“div”).addClass(“redbox”) .fadeOut(); Um método, várias aplicações $(...).html(); $(...).html(“<p>hello</p>”); $(...).html(function(i, oldHtml){ return “<p>hello “ + i + “</p>”; 	});
jQuery: métodos MovingElements:  append(), appendTo(), before(), after(),  Attributes css(), attr(), html(), val(), addClass() Traversing find(), is(), prevAll(), next(), hasClass() Events bind(), trigger(), unbind(),, click() Effects show(), fadeOut(), toggle(), animate()
jQuery: um pouco mais de $() Você pode passar uma função para $() para ser executada quando a página carregar $(function(){ //executa quando o DOM estiver pronto }); o mesmo que $(document).ready(function(){ });
Exemplo: criando e incluindo elementos Pegue um elemento com o id foo e adicione html $(“#foo”) <html> <body> <div>jQuery</div> <div id=”foo”>example</div> </body> </html>
Exemplo: criando e incluindo elementos Pegue um elemento com o id foo e adicione html $(“#foo”).append(“<p>test</p>”); <html> <body> <div>jQuery</div> <div id=”foo”>example</div> </body> </html>
Exemplo: criando e incluindo elementos Pegue um elemento com o id foo e adicione html $(“#foo”).append(“<p>test</p>”); <html> <body> <div>jQuery</div> <div id=”foo”>example<p>test</p></div> </body> </html>
Exemplo: movendo elementos Mova os parágrafos para o elemento com id “foo” $(“p”) <html> <body> <div>jQuery <p>moving</p>  <p>paragraphs</p> </div> <div id=”foo”>example</div> </body> </html>
Exemplo: movendo elementos Mova os parágrafos para o elemento com id “foo” $(“p”).appendTo(“#foo”); <html> <body> <div>jQuery <p>moving</p>  <p>paragraphs</p> </div> <div id=”foo”>example</div> </body> </html>
Exemplo: movendo elementos Mova os parágrafos para o elemento com id “foo” $(“p”).appendTo(“#foo”); <html> <body> <div>jQuery</div> <div id=”foo”>example <p>moving</p>  <p>paragraphs</p> </div> </body> </html>
jQuery: Atributos .attr(‘id’) .html() .val() .css(“top”) .width() .attr(‘id’,’foo’) .html(“<p>hi</p>”) .val(“newval”) .css(“top”, “80px”) .width(60) Get Set
jQuery: Atributos Setar a bordapara 1px black $(...).css(“border”, “1px solidblack”); Setar várias propriedades css $(...).css({  	“background”: “yellow”,  	“height”: “400px” }); Setar todos os href dos links para google.com $(“a”).attr(“href”, “http://google.com”);
jQuery: Atributos Setar a bordapara 1px black $(...).css(“border”, “1px solidblack”); Setar várias propriedades css $(...).css({  	“background”: “yellow”,  	“height”: “400px” }); Setar todos os href dos links para google.com $(“a”).attr(“href”, “http://google.com”);
jQuery: Eventos Quando um botão é clicado, faz algo $(“button”).click(function(){ something(); });
jQuery: Animação e efeitos Efeitos  Hide e show fadeIn e fade out Slide up e slide down
jQuery: Animação Cada vez que clicar, alterne slide up e down o primeiro div $(...).click(function(){ 	$(“div:first”).slideToggle(); }); Animar os elementos até que tenham 300px de largura, em 0.5 segundos $(...).animate({ “width”: “300px” }, 500); Tire o foco do elemento realizando fade out até 30% de opacity em 0.5 segundos $(...).fadeTo(500, 0.3);
jQuery: Transversing 1 Pegue todas as células anteriores a #myCell $(“#myCell”) <html> <body> <table><tr> <td></td> <td></td> <td id=”myCell”></td> <td></td> </tr></table> </body> </html>
jQuery: Transversing 1 Pegue todas as células anteriores a #myCell $(“#myCell”).prevAll() <html> <body> <table><tr> <td></td> <td></td> <td id=”myCell”></td> <td></td> </tr></table> </body> </html>
jQuery: Transversing 1 Pegue todas as células anteriores a #myCell $(“#myCell”).prevAll().andSelf() <html> <body> <table><tr> <td></td> <td></td> <td id=”myCell”></td> <td></td> </tr></table> </body> </html>
jQuery: Transversing 2 Encontre os parágrafos a partir da tabela $(“table”); <html> <body> <table></table> <div> <p>foo</p> <span>bar</span> </div> </body> </html>
jQuery: Transversing 2 Encontre os parágrafos a partir da tabela $(“table”).next(); <html> <body> <table></table> <div> <p>foo</p> <span>bar</span> </div> </body> </html>
jQuery: Transversing 2 Encontre os parágrafos a partir da tabela $(“table”).next().find(“p”); <html> <body> <table></table> <div> <p>foo</p> <span>bar</span> </div> </body> </html>

Más contenido relacionado

La actualidad más candente

Javascript - Biblioteca Jquery
Javascript - Biblioteca JqueryJavascript - Biblioteca Jquery
Javascript - Biblioteca JqueryMultside Digital
 
JavaScript e JQuery para Webdesigners
JavaScript e JQuery para WebdesignersJavaScript e JQuery para Webdesigners
JavaScript e JQuery para WebdesignersHarlley Oliveira
 
Boas práticas de Automação de Testes
Boas práticas de Automação de TestesBoas práticas de Automação de Testes
Boas práticas de Automação de TestesCamilo Ribeiro
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Bruno Grange
 
11 Java Script - Exemplos com eventos
11 Java Script - Exemplos com eventos11 Java Script - Exemplos com eventos
11 Java Script - Exemplos com eventosCentro Paula Souza
 
jQuery básico (parte 2)
jQuery básico (parte 2)jQuery básico (parte 2)
jQuery básico (parte 2)Luís Cobucci
 
Javascript - Princípios da linguagem e utilização de frameworks
Javascript - Princípios da linguagem e utilização de frameworksJavascript - Princípios da linguagem e utilização de frameworks
Javascript - Princípios da linguagem e utilização de frameworksBruno Abrantes
 
DOMinando JavaScript
DOMinando JavaScriptDOMinando JavaScript
DOMinando JavaScriptThiago Poiani
 
Javascript truquesmagicos
Javascript truquesmagicosJavascript truquesmagicos
Javascript truquesmagicosponto hacker
 
Aplicações rápidas para a Web com Django
Aplicações rápidas para a Web com DjangoAplicações rápidas para a Web com Django
Aplicações rápidas para a Web com DjangoFreedom DayMS
 

La actualidad más candente (20)

Javascript - Biblioteca Jquery
Javascript - Biblioteca JqueryJavascript - Biblioteca Jquery
Javascript - Biblioteca Jquery
 
Programação Web com jQuery
Programação Web com jQueryProgramação Web com jQuery
Programação Web com jQuery
 
Java script - funções
Java script - funçõesJava script - funções
Java script - funções
 
Hello vue
Hello vueHello vue
Hello vue
 
Java script aula 02 - operadores
Java script   aula 02 - operadoresJava script   aula 02 - operadores
Java script aula 02 - operadores
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
JavaScript e JQuery para Webdesigners
JavaScript e JQuery para WebdesignersJavaScript e JQuery para Webdesigners
JavaScript e JQuery para Webdesigners
 
Java script aula 05 - funções
Java script   aula 05 - funçõesJava script   aula 05 - funções
Java script aula 05 - funções
 
Boas práticas de Automação de Testes
Boas práticas de Automação de TestesBoas práticas de Automação de Testes
Boas práticas de Automação de Testes
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)
 
11 Java Script - Exemplos com eventos
11 Java Script - Exemplos com eventos11 Java Script - Exemplos com eventos
11 Java Script - Exemplos com eventos
 
jQuery básico (parte 2)
jQuery básico (parte 2)jQuery básico (parte 2)
jQuery básico (parte 2)
 
Javascript aula 01 - visão geral
Javascript   aula 01 - visão geralJavascript   aula 01 - visão geral
Javascript aula 01 - visão geral
 
Curso de Desenvolvimento Web - Módulo 03 - JavaScript
Curso de Desenvolvimento Web - Módulo 03 - JavaScriptCurso de Desenvolvimento Web - Módulo 03 - JavaScript
Curso de Desenvolvimento Web - Módulo 03 - JavaScript
 
JQuery
JQuery JQuery
JQuery
 
Javascript - Princípios da linguagem e utilização de frameworks
Javascript - Princípios da linguagem e utilização de frameworksJavascript - Princípios da linguagem e utilização de frameworks
Javascript - Princípios da linguagem e utilização de frameworks
 
Java script aula 08 - formulários
Java script   aula 08 - formuláriosJava script   aula 08 - formulários
Java script aula 08 - formulários
 
DOMinando JavaScript
DOMinando JavaScriptDOMinando JavaScript
DOMinando JavaScript
 
Javascript truquesmagicos
Javascript truquesmagicosJavascript truquesmagicos
Javascript truquesmagicos
 
Aplicações rápidas para a Web com Django
Aplicações rápidas para a Web com DjangoAplicações rápidas para a Web com Django
Aplicações rápidas para a Web com Django
 

Similar a Html dom, eventos, jquery

Tutorial sobre Jquery
Tutorial sobre JqueryTutorial sobre Jquery
Tutorial sobre JqueryIvo Calado
 
Java mais ágil que nunca no desenvolvimento Web
Java mais ágil que nunca no desenvolvimento WebJava mais ágil que nunca no desenvolvimento Web
Java mais ágil que nunca no desenvolvimento WebBruno Borges
 
Apps Web em Wicket e Scala no GlassFish Java EE 6
Apps Web em Wicket e Scala no GlassFish Java EE 6Apps Web em Wicket e Scala no GlassFish Java EE 6
Apps Web em Wicket e Scala no GlassFish Java EE 6Bruno Borges
 
jQuery - Visão Geral
jQuery - Visão GeraljQuery - Visão Geral
jQuery - Visão GeralKaio Valente
 
Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)
Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)
Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)Evandro Klimpel Balmant
 
Prototype Framework Javascript
Prototype Framework JavascriptPrototype Framework Javascript
Prototype Framework JavascriptMarcio Romu
 
Combinando OO e Funcional em javascript de forma prática
Combinando OO e Funcional em javascript de forma práticaCombinando OO e Funcional em javascript de forma prática
Combinando OO e Funcional em javascript de forma práticaMilfont Consulting
 
Evento Front End SP - Organizando o Javascript
 Evento Front End SP - Organizando o Javascript Evento Front End SP - Organizando o Javascript
Evento Front End SP - Organizando o JavascriptMichel Ribeiro
 
Criando plugins jQuery
Criando plugins jQueryCriando plugins jQuery
Criando plugins jQueryRicardo Coelho
 
Minicurso de PHP Com Ajax
Minicurso de PHP Com AjaxMinicurso de PHP Com Ajax
Minicurso de PHP Com AjaxAdler Medrado
 
Simplificando o full stack - desenvolvimento web na prática
Simplificando o full stack - desenvolvimento web na práticaSimplificando o full stack - desenvolvimento web na prática
Simplificando o full stack - desenvolvimento web na práticaMarianna Cruz Teixeira
 
Apostila_JavaScript_pela_axademia_ardkgfv
Apostila_JavaScript_pela_axademia_ardkgfvApostila_JavaScript_pela_axademia_ardkgfv
Apostila_JavaScript_pela_axademia_ardkgfverickrodrigo23
 
DevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webappsDevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webappsSuissa
 
LPII_Aula_7-JQuery.pdf
LPII_Aula_7-JQuery.pdfLPII_Aula_7-JQuery.pdf
LPII_Aula_7-JQuery.pdfGabrielaMota46
 

Similar a Html dom, eventos, jquery (20)

Wicket 2008
Wicket 2008Wicket 2008
Wicket 2008
 
Tutorial sobre Jquery
Tutorial sobre JqueryTutorial sobre Jquery
Tutorial sobre Jquery
 
Java mais ágil que nunca no desenvolvimento Web
Java mais ágil que nunca no desenvolvimento WebJava mais ágil que nunca no desenvolvimento Web
Java mais ágil que nunca no desenvolvimento Web
 
Apps Web em Wicket e Scala no GlassFish Java EE 6
Apps Web em Wicket e Scala no GlassFish Java EE 6Apps Web em Wicket e Scala no GlassFish Java EE 6
Apps Web em Wicket e Scala no GlassFish Java EE 6
 
jQuery - Visão Geral
jQuery - Visão GeraljQuery - Visão Geral
jQuery - Visão Geral
 
Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)
Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)
Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)
 
Beagajs
BeagajsBeagajs
Beagajs
 
Prototype Framework Javascript
Prototype Framework JavascriptPrototype Framework Javascript
Prototype Framework Javascript
 
Javascript
JavascriptJavascript
Javascript
 
Aprenda jQuery 1.3
Aprenda jQuery 1.3Aprenda jQuery 1.3
Aprenda jQuery 1.3
 
04_Introducao_JavaScript.pdf
04_Introducao_JavaScript.pdf04_Introducao_JavaScript.pdf
04_Introducao_JavaScript.pdf
 
Combinando OO e Funcional em javascript de forma prática
Combinando OO e Funcional em javascript de forma práticaCombinando OO e Funcional em javascript de forma prática
Combinando OO e Funcional em javascript de forma prática
 
Evento Front End SP - Organizando o Javascript
 Evento Front End SP - Organizando o Javascript Evento Front End SP - Organizando o Javascript
Evento Front End SP - Organizando o Javascript
 
Ajax em java
Ajax em javaAjax em java
Ajax em java
 
Criando plugins jQuery
Criando plugins jQueryCriando plugins jQuery
Criando plugins jQuery
 
Minicurso de PHP Com Ajax
Minicurso de PHP Com AjaxMinicurso de PHP Com Ajax
Minicurso de PHP Com Ajax
 
Simplificando o full stack - desenvolvimento web na prática
Simplificando o full stack - desenvolvimento web na práticaSimplificando o full stack - desenvolvimento web na prática
Simplificando o full stack - desenvolvimento web na prática
 
Apostila_JavaScript_pela_axademia_ardkgfv
Apostila_JavaScript_pela_axademia_ardkgfvApostila_JavaScript_pela_axademia_ardkgfv
Apostila_JavaScript_pela_axademia_ardkgfv
 
DevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webappsDevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webapps
 
LPII_Aula_7-JQuery.pdf
LPII_Aula_7-JQuery.pdfLPII_Aula_7-JQuery.pdf
LPII_Aula_7-JQuery.pdf
 

Html dom, eventos, jquery

  • 1. HTML DOM Ricardo Cavalcanti kvalcanti@gmail.com
  • 2. Algumas Ferramentas “Firebug integrates with Firefox to put a wealth of web development tools at your fingertips while you browse. You can edit, debug, and monitor CSS, HTML, and JavaScript live in any web page!” http://getfirebug.com
  • 3. JavacriptBasico: tag <script> <script type="text/javascript">document.write("Hello World!");</script> É executadoassimquecarregado Se o script alterar a página, coloque no final Colocar no final é sempreuma boa prática document.write() Output para a página
  • 4. Javascript Básico: arquivo .js Para incluir arquivos externos <script type="text/javascript“ src="xxx.js"></script> Boa prática: minifique e unifique os arquivos .js YUI Compressor e Google ClosureCompiler
  • 6. Browser objects: window Representa uma janela aberta no browser alert( msg ) confirm() window.location Informações sobre a URL window.screen window.history window.navigator
  • 7. Browser objects: window.navigator Informações sobre o browser cookieEnabled appName userAgent
  • 8. Browser objects: window.history Para navegar pelo histórico back() forward() go()
  • 9. DOM: introdução DocumentObjectModel: um conjunto de interfaces Uma API para HTML e XML Representação estrutural do documento Permite modificação do conteúdo e do visual Liga as páginas aos scripts
  • 10. DOM: documento HTML <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>ToDolist</title> </head> <body> <div>What I need to do.</div> <p title="ToDolist">Mylist:</p> <ul> <li>Finishpresentation</li> <li>Cleanupmy home.</li> <li>Buy a bottleofmilk. (Maybebeerwillbebetter?;) </li> </ul> </body> </html> html Head body Meta title div P ul title li
  • 11. DOM: encontrando elementos <input type="text" id="message" value="Messagesgoeshere..."/> ... var msgInput = document.getElementById("message"); <ul id="list"> <li>Item 1</li> <li>Item 2</li> <li>Item 3</li> </ul> ... var items = document.getElementsByTagName("li");
  • 12. DOM: elements <p title="ToDo list">My tasks</p> Tipos de nodes HTML element Attribute Textnode p title Textnode ToDo list My tasks
  • 13. DOM: atributos de Element nodeName nodeValue nodeType parentNode childNodes firstChild lastChild previousSibling nextSibling attributes ownerDocument
  • 14. DOM: objeto document A raiz para a árvore DOM document.getElementById document.getElementsByName document.getElementsByTagName
  • 15. DOM: manipulação do DOM var item = document.createElement("li"); var text = document.createTextNode(message); item.appendChild(text); parent.appendChild(item); parent.insertBefore(someNode, item); parent.innerHTML = parent.innerHTML + ("<li>"+message+"</li>"); parent.removeChild(item);
  • 16. DOM: element.style É possível mudar o visual do elemento através do javacript var el = document.getElementById(“myDiv”); el.style.display= “none”;
  • 19. Eventos: introdução Para tornar páginas dinâmicas Funções que executarão quando eventos ocorrerem O retorno da função pode bloquear a execução de uma ação posterior
  • 20. Eventos: definindo eventos Inline, na tag html <input type="text" size="30" id="email" onchange="checkEmail()"> functioncheckEmail(){ //... } Não use! É ruim escrever código javascript no meio do html
  • 21. Eventos: definindo eventos Diretamente no elemento <input type="text" size="30" id="email" > var elEmail = document.getElementById(“email”); elEmail.onchange = function(){ ...}; Posso executar a função do evento elEmail.onchange() thisé o elemento onde ocorreu o evento Desvantagem: apenas uma função por evento.
  • 22. Eventos: modelos avançados Adicionando um eventhandler var addBtn = document.getElementById("addBtn"); //... addBtn.addEventListener('click', function(){ //codegoeshere },false); addBtn.attachEvent('click', function(){ //codegoeshere }); thisé o elemento onde ocorreu o evento
  • 23. Eventos: capturing & bubbling Se ambos tiverem onclick, qual é executado primeiro? Capturing: div a primeiro Bubbling: div b primeiro W3C definiu as duas possibilidades addEventListener(“click”, fn, boolean) False: capturing True: bubling
  • 24. Eventos: eventos de mouse mousedown mouseup click dblclick mousemove A cada pixel mouseover mouseout
  • 25. Eventos: teclas keydown keypress keyup functionnoNumbers(e) {var keynum, keychar, numcheck; if(window.event) { // IE keynum = e.keyCode} elseif(e.which) { //FF keynum = e.which } keychar = String.fromCharCode(keynum); numcheck = //;return !numcheck.test(keychar); } <input type="text" onkeydown="return noNumbers(event)" />
  • 29. jQuery: introdução Escondendo divs com javacript divs = document.getElementByTagName(‘div’); for (i = 0; i < divs.length; i++) { divs[i].style.display = ‘none’; }
  • 30. jQuery: introdução Escondendo divs com javacript divs = document.getElementByTagName(‘div’); for (i = 0; i < divs.length; i++) { divs[i].style.display = ‘none’; } Escondendo divs com jquery $(‘div’).hide();
  • 31. jQuery: filosofia Encontre HTML Faça alguma coisa $() função seletora O mesmo que jQuery() Incluam na página http://code.jquery.com/jquery-1.4.3.min.js Ou baixem em http://jquery.com/
  • 33. jQuery: seletores CSS Um pouco de CSS #myId encontra o elemento com o id ‘myId’ .myClass encontra todos os elementos com a class ‘myClass’ table encontra todos os elementos com a tagtable table#myId encontra a tabela com id ‘myId’ table #myId encontra o elemento com id ‘myId’ que esteja dentro de um table
  • 34. jQuery: seletores $(‘#myId’) pega o elemento com o id ‘myId’ $(‘li:first’) pega o primeiro li $(‘tr:odd’) pega todas as tablerows ímpares $(‘a[target=_blank]’) pega todos os a cujo target é _blank $(‘form[id^=step]’) pega todos os forms cujo id começa com ‘step’
  • 35. jQuery: seletores CSS Depois de achar $(‘#myId’) Fazer $(‘#myId’).addClass(‘redbox’);
  • 36. jQuery: coisas legais Métodos encadeados $(“div”).addClass(“redbox”) .fadeOut(); Um método, várias aplicações $(...).html(); $(...).html(“<p>hello</p>”); $(...).html(function(i, oldHtml){ return “<p>hello “ + i + “</p>”; });
  • 37. jQuery: métodos MovingElements: append(), appendTo(), before(), after(), Attributes css(), attr(), html(), val(), addClass() Traversing find(), is(), prevAll(), next(), hasClass() Events bind(), trigger(), unbind(),, click() Effects show(), fadeOut(), toggle(), animate()
  • 38. jQuery: um pouco mais de $() Você pode passar uma função para $() para ser executada quando a página carregar $(function(){ //executa quando o DOM estiver pronto }); o mesmo que $(document).ready(function(){ });
  • 39. Exemplo: criando e incluindo elementos Pegue um elemento com o id foo e adicione html $(“#foo”) <html> <body> <div>jQuery</div> <div id=”foo”>example</div> </body> </html>
  • 40. Exemplo: criando e incluindo elementos Pegue um elemento com o id foo e adicione html $(“#foo”).append(“<p>test</p>”); <html> <body> <div>jQuery</div> <div id=”foo”>example</div> </body> </html>
  • 41. Exemplo: criando e incluindo elementos Pegue um elemento com o id foo e adicione html $(“#foo”).append(“<p>test</p>”); <html> <body> <div>jQuery</div> <div id=”foo”>example<p>test</p></div> </body> </html>
  • 42. Exemplo: movendo elementos Mova os parágrafos para o elemento com id “foo” $(“p”) <html> <body> <div>jQuery <p>moving</p> <p>paragraphs</p> </div> <div id=”foo”>example</div> </body> </html>
  • 43. Exemplo: movendo elementos Mova os parágrafos para o elemento com id “foo” $(“p”).appendTo(“#foo”); <html> <body> <div>jQuery <p>moving</p> <p>paragraphs</p> </div> <div id=”foo”>example</div> </body> </html>
  • 44. Exemplo: movendo elementos Mova os parágrafos para o elemento com id “foo” $(“p”).appendTo(“#foo”); <html> <body> <div>jQuery</div> <div id=”foo”>example <p>moving</p> <p>paragraphs</p> </div> </body> </html>
  • 45. jQuery: Atributos .attr(‘id’) .html() .val() .css(“top”) .width() .attr(‘id’,’foo’) .html(“<p>hi</p>”) .val(“newval”) .css(“top”, “80px”) .width(60) Get Set
  • 46. jQuery: Atributos Setar a bordapara 1px black $(...).css(“border”, “1px solidblack”); Setar várias propriedades css $(...).css({ “background”: “yellow”, “height”: “400px” }); Setar todos os href dos links para google.com $(“a”).attr(“href”, “http://google.com”);
  • 47. jQuery: Atributos Setar a bordapara 1px black $(...).css(“border”, “1px solidblack”); Setar várias propriedades css $(...).css({ “background”: “yellow”, “height”: “400px” }); Setar todos os href dos links para google.com $(“a”).attr(“href”, “http://google.com”);
  • 48. jQuery: Eventos Quando um botão é clicado, faz algo $(“button”).click(function(){ something(); });
  • 49. jQuery: Animação e efeitos Efeitos Hide e show fadeIn e fade out Slide up e slide down
  • 50. jQuery: Animação Cada vez que clicar, alterne slide up e down o primeiro div $(...).click(function(){ $(“div:first”).slideToggle(); }); Animar os elementos até que tenham 300px de largura, em 0.5 segundos $(...).animate({ “width”: “300px” }, 500); Tire o foco do elemento realizando fade out até 30% de opacity em 0.5 segundos $(...).fadeTo(500, 0.3);
  • 51. jQuery: Transversing 1 Pegue todas as células anteriores a #myCell $(“#myCell”) <html> <body> <table><tr> <td></td> <td></td> <td id=”myCell”></td> <td></td> </tr></table> </body> </html>
  • 52. jQuery: Transversing 1 Pegue todas as células anteriores a #myCell $(“#myCell”).prevAll() <html> <body> <table><tr> <td></td> <td></td> <td id=”myCell”></td> <td></td> </tr></table> </body> </html>
  • 53. jQuery: Transversing 1 Pegue todas as células anteriores a #myCell $(“#myCell”).prevAll().andSelf() <html> <body> <table><tr> <td></td> <td></td> <td id=”myCell”></td> <td></td> </tr></table> </body> </html>
  • 54. jQuery: Transversing 2 Encontre os parágrafos a partir da tabela $(“table”); <html> <body> <table></table> <div> <p>foo</p> <span>bar</span> </div> </body> </html>
  • 55. jQuery: Transversing 2 Encontre os parágrafos a partir da tabela $(“table”).next(); <html> <body> <table></table> <div> <p>foo</p> <span>bar</span> </div> </body> </html>
  • 56. jQuery: Transversing 2 Encontre os parágrafos a partir da tabela $(“table”).next().find(“p”); <html> <body> <table></table> <div> <p>foo</p> <span>bar</span> </div> </body> </html>