SlideShare uma empresa Scribd logo
1 de 22
Introduction Jquery a Technical Overview Abril-2009, Alexandre Marreiros
Agenda No agenda Sinta-se a vontade para interromper Pergunte Comente Todas as perguntas são validas.
Javascript Libraries/Framework Porquê do uso? Visão da página html como um conjunto sendo um conjunto de objectos; em deterimento de navegação pelo DOM. CrossBrowsing styling, este tipo de plataformas procura dar suporte a aplicação de estilos de igual modo em qualquer browser; Focus na interacçaõ com o utilizador; Facilitam a execução de pedidos assincronos.
DOM (Document Object Model) É uma interpretação cross plataform e relacional de um documento. Permite-nos olhar um qualquer documento que o suporte como um conjunto de elementos relacionados entre sí e com as suas próprias especificidades.
A kind off a Object Ao utilizar o Dom como forma de interpretação de um documento, deixamos de ver o html como um conjunto de tags para ter uma visão de um conjunto de elementos. Cada elemento tem a sua forma de relacionamento com os restantes assim como os seus próprios atributos. Cada elemento é assim interpretado como um objecto…
A object vision off the Document Permite isolar cada um dos elementos; Entende cada elemento como um conjunto de atributos propriedades e relações com outros elementos; Permite uma abstração do todo e aconcentração apenas no atomo; Etc…
JQuery  “Is a new kind of JavaScript Library. jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development. jQuery is designed to change the way that you write JavaScript. Lightweight Footprint ,CSS3 Compliant, Cross-browser” – Jquery.com
Jquery II Preparado com um conjunto de animações, efeitos e widgets. Basics: show(), hide(), toggle() Slide: slideUp (), slideDown() Fading: fadeIn(), fadeOut() Custom A maior parte das animações permite estabelecer a velocidade e até callbacks
Jquery Foundation Anonymous methods Factory Method Selectors
JQuery Foundation II    Anonymous methods Métodos anonimos são métodos sem nome que são declarados em runtime  Permitemmaiorlegibilidadedocodigo Naosobrecarregam o engine do browser pois o código de um método anonimo só é interpretado no acto de execução  Em JQuery:    $( function(){ alert( "I'm anonymous!" ); } );
jQuery Foundation III Factory Method $() nomenculaturajQuery() factory method  $( function ) – executa a funçãoapóstodososobjectos DOM teremsidocarregados $( selector ) – retornaumacoleção de elementosquetenhamcomoatributo o selector $( html ) – retornatodososelementos html queforamcriadosapós o carregamentodapágina. Uma coleção de elementos é designada é um stack.
jQuery Foundation IV Selectors Cssslectors XpathSelectors CustomSelectors
jQueryFoundation V Css Selectors $(“Selectors”) Suportatodososselectoresdefinidosnasespecificações de css da w3c e permiteatravés deles obterelementos e manipula-los… Querpelosnomes das classes, querpelalocalização, querpelo seucontextorelacional. $( "#header" ) – retornaumacoleção com todososelementosquetenham o id header; $( "div.note" ) – retornatodososdivsquecontenham a class note associada; $( "p" ) – retornaumacoleção com todososelementos p contidos no documento; $( "ul.listli" ) – combinação das duasanteriores; $( "a[ rel = 'home' ]" ) – coleção de links cujoatributorel é "home“ $( “#selected-plays > li" ) – retornaumacoleção de todososelementoscujo id é selected-plays e que tem um filho do tipo li. Etc.. Helper functions getParentWithClass()  getParentWithTagName()  Etc…
jQueryFoundation VI Xpath selector XmlPathlanguage, permite iterar por diferentes elementos de um documento XML, e interpretar cada um deles como um objecto. $( ‘a[@title]’ ) – retorna o valor do atributo title de todososelementos a; $( ‘div[ul]’ ) – retornaumacoleção com todososelementos div do documentoque tem um elementoul; A selecçãoutilizandoatributospermiteutilizarumasintaxeproxima das regular expressions permitndoinsturções do tipo: $(‘a[@href^=“mail to”]’) – retornatodososelementos do tipo a quecontenham um hrefcomeçadopor mail to; $(‘a[@href$=“pdf”]’) – retornatodososelementos do tipo a quecontenham um hrefterminadoporpdf
jQueryFoundation VII		 CustomSelectors A todos os selectores definidos o jQuery acrescentam ainda o seu conjunto de selectores. Particularmente uteis para a manipulação de tabelas e outros elementos complexos.  Em elementos contentores o são disponibilizadas intruções do tipo: $(‘tr.odd’) – obtem todos os tr impares $(‘tr.even’) – obtem todos os tr pares $(‘div:nth-child(1)’) – obrtem todos os divs que são o primeiro filho do contentor onde se encontram.
Rules off $()		 $() returns a jQuery collection containing 0+ elements  Calls on an empty collection don't error  When accessing values, usually only the first element is used  When mutating values, usually all elements in collection are updated  When mutating values, the jQuery object is usually returned - this allows for method chaining  $().addClass( "one" ).addClass( "two" ).removeClass( "one" )  NOTE: Method chaining is "cool", but can hurt readability - don't overuse
MethodsoverjQueryObject $().attr( name ) - Gets value of given attribute for first element $().attr( name, value | {options} ) - Sets values for all elements $().addClass() - Adds CSS class to all elements $().removeClass() - Removes CSS class from all elements $().css( name ) - Gets CSS value of given property for first element $().css( name, value | {options} ) - Sets CSS properties for all elements $().html() - Gets the inner HTML of the first element $().html( html ) - Sets the inner HTML of all elements $().text() - Gets the combined text of all elements $().text( text ) - Sets the text value of all elements $().val() - Gets the value attribute of first element $().val( val ) - Sets the value attribute of all elements $().append( html | element | jQuery ) - adds given content to the selected content  $().appendTo( selector ) - adds given set to the selected set  $().prepend() / $().prependTo() - Same as above, but prepends $().before( content ) - Inserts the given content before the selected elements  $().after( content ) - Inserts the given content after the selected elements  $().remove() - Removes selected elements from DOM  $().empty() - Removes all children from given set of elements  $().clone() - Creates a copy of the given set  $().filter( selectors | function ) - Returns a sub-set of collection matching filter  $().not( selectors ) - Returns a sub-set of collection not matching filter  Nota: A filtragem de elementosnão é destrutivadacoleção
MethodsoverjQueryObjectin Dom $().find( selectors ) - Gets the elements in the context of the given collection  $().children( [selectors] ) - Gets the set of children of given elements  $().parent( [selectors] ) - Gets the parent of each element in the given set  $().prev( [selectors] ) - Gets the previous element of each element in given set  $().prevAll( [selectors] ) - Gets all the previous elements of each element in given set  $().next( [selectors] ) - Gets the next element of each element in given set  $().nextAll( [selectors] ) - Gets the all the next elements of each element in given set
IteratingoverjQueryobject Quando o stack é mesmoumacoleção $().each( function( intIndex, objElement ) ) – identicoaoforeach de muitaslinguagens É umafunção de contexto a iteração é feitasobre o elemento DOM indexado;
Events Youcanbind as manyhandlers to a givenevent $().bind( eventType, function( objEvent ){} ) - Bindgivenfunction to giveneventtypeongivencollection Manybuilt-inshorthands: $().bind( "click", fn ) == $().click( fn ) $().trigger( eventType ) - Manuallytriggereventhandlers Manybuilt-inshorthands: $().trigger( "click" ) == $().click() return( false ) - Ineventhandler, preventsdefaultbehaviorandeventbubbling objEvent.preventDefault() - Ineventhandler, preventsdefaultevent (allowsbubbling)  objEvent.stopPropagation() - Ineventhandler, preventsbubbling (allowsdefaultbehavior)  NEW: live() / die() - Automaticallywireseventsbasedonselectors
ExtendingjQuery Extender a bibliotecajQueryestápensado a doisniveisatravés de pluginsou de novos selectors Extender funções (extend $ object)  Extenmderfunções dos contentores(extend $.fn object)  Extender os selectors (extend $.expr[':'] object)
Referencias  www.jquery.com – site oficial; http://plugins.jquery.com – conjunto de plugins e exemplos Learning Jquery, better design and web development with simple Javascript techniques, Jonathan Chaffer & Karl Swedberg – Conceitos base da biblioteca; JQuery Reference Guide Jonathan Chaffer & Karl Swedberg – nutshel e referencia de cabeceira; JQuery in action – exemplos práticos e aplicação.

Mais conteúdo relacionado

Mais procurados

jQuery na Prática - Cauê Fajoli
jQuery na Prática - Cauê FajolijQuery na Prática - Cauê Fajoli
jQuery na Prática - Cauê FajoliCaue Fajoli
 
J query javascript para seres humanos
J query   javascript para seres humanosJ query   javascript para seres humanos
J query javascript para seres humanosnobios
 
Persistência de Dados no SQLite com Room
Persistência de Dados no SQLite com RoomPersistência de Dados no SQLite com Room
Persistência de Dados no SQLite com RoomNelson Glauber Leal
 
Apostila de ext js com php e postgresql v1.1
Apostila de ext js com php e postgresql v1.1Apostila de ext js com php e postgresql v1.1
Apostila de ext js com php e postgresql v1.1Luciano Marwell
 
Apostila de ext js com php e postgresql v1.2
Apostila de ext js com php e postgresql v1.2Apostila de ext js com php e postgresql v1.2
Apostila de ext js com php e postgresql v1.2Luciano Marwell
 
Apostila de ext js com php e postgresql v1.3
Apostila de ext js com php e postgresql v1.3Apostila de ext js com php e postgresql v1.3
Apostila de ext js com php e postgresql v1.3Luciano Marwell
 
Turbinando o desenvolvimento Android com Kotlin
Turbinando o desenvolvimento Android com KotlinTurbinando o desenvolvimento Android com Kotlin
Turbinando o desenvolvimento Android com KotlinNelson Glauber Leal
 
Python: a primeira mordida
Python: a primeira mordidaPython: a primeira mordida
Python: a primeira mordidaLuciano Ramalho
 
Programando em python dicionarios
Programando em python   dicionariosProgramando em python   dicionarios
Programando em python dicionariossamuelthiago
 
Apostila de ext js com php e postgresql v1.0
Apostila de ext js com php e postgresql v1.0Apostila de ext js com php e postgresql v1.0
Apostila de ext js com php e postgresql v1.0Luciano Marwell
 
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
 
Criando controle de acesso com php e my sql
Criando controle de acesso com php e my sqlCriando controle de acesso com php e my sql
Criando controle de acesso com php e my sqlPaulo Damas
 

Mais procurados (20)

Introdução à JQuery
Introdução à JQueryIntrodução à JQuery
Introdução à JQuery
 
jQuery na Prática - Cauê Fajoli
jQuery na Prática - Cauê FajolijQuery na Prática - Cauê Fajoli
jQuery na Prática - Cauê Fajoli
 
jQuery Simplificando o JavaScript
jQuery Simplificando o JavaScriptjQuery Simplificando o JavaScript
jQuery Simplificando o JavaScript
 
Java script aula 06 - dom
Java script   aula 06 - domJava script   aula 06 - dom
Java script aula 06 - dom
 
J query 1
J query 1J query 1
J query 1
 
J query javascript para seres humanos
J query   javascript para seres humanosJ query   javascript para seres humanos
J query javascript para seres humanos
 
Persistência de Dados no SQLite com Room
Persistência de Dados no SQLite com RoomPersistência de Dados no SQLite com Room
Persistência de Dados no SQLite com Room
 
PHP ao Extremo
PHP ao ExtremoPHP ao Extremo
PHP ao Extremo
 
Apostila de ext js com php e postgresql v1.1
Apostila de ext js com php e postgresql v1.1Apostila de ext js com php e postgresql v1.1
Apostila de ext js com php e postgresql v1.1
 
Apostila de ext js com php e postgresql v1.2
Apostila de ext js com php e postgresql v1.2Apostila de ext js com php e postgresql v1.2
Apostila de ext js com php e postgresql v1.2
 
Apostila de ext js com php e postgresql v1.3
Apostila de ext js com php e postgresql v1.3Apostila de ext js com php e postgresql v1.3
Apostila de ext js com php e postgresql v1.3
 
Turbinando o desenvolvimento Android com Kotlin
Turbinando o desenvolvimento Android com KotlinTurbinando o desenvolvimento Android com Kotlin
Turbinando o desenvolvimento Android com Kotlin
 
Programação Web com jQuery
Programação Web com jQueryProgramação Web com jQuery
Programação Web com jQuery
 
Python: a primeira mordida
Python: a primeira mordidaPython: a primeira mordida
Python: a primeira mordida
 
Programando em python dicionarios
Programando em python   dicionariosProgramando em python   dicionarios
Programando em python dicionarios
 
Apostila de ext js com php e postgresql v1.0
Apostila de ext js com php e postgresql v1.0Apostila de ext js com php e postgresql v1.0
Apostila de ext js com php e postgresql v1.0
 
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
 
Criando controle de acesso com php e my sql
Criando controle de acesso com php e my sqlCriando controle de acesso com php e my sql
Criando controle de acesso com php e my sql
 
Meta-programacao em python
Meta-programacao em pythonMeta-programacao em python
Meta-programacao em python
 
Palestra cbq
Palestra cbqPalestra cbq
Palestra cbq
 

Destaque (9)

Wp7 intro
Wp7 introWp7 intro
Wp7 intro
 
GWAB Mobile Services
GWAB Mobile ServicesGWAB Mobile Services
GWAB Mobile Services
 
Orchard webcamp
Orchard webcampOrchard webcamp
Orchard webcamp
 
Pragmatic responsive web design industry session 7
Pragmatic responsive web design   industry session 7Pragmatic responsive web design   industry session 7
Pragmatic responsive web design industry session 7
 
Silverlight 4 into
Silverlight 4 intoSilverlight 4 into
Silverlight 4 into
 
Edit open day responsive design frameworks
Edit open day responsive design frameworksEdit open day responsive design frameworks
Edit open day responsive design frameworks
 
Jws masterclass progressive web apps
Jws masterclass progressive web appsJws masterclass progressive web apps
Jws masterclass progressive web apps
 
Xamarin.forms
Xamarin.forms Xamarin.forms
Xamarin.forms
 
Responsive webdesign
Responsive webdesignResponsive webdesign
Responsive webdesign
 

Semelhante a Jquery Technical Overview

Semelhante a Jquery Technical Overview (20)

Java script aula 09 - JQuery
Java script   aula 09 - JQueryJava script   aula 09 - JQuery
Java script aula 09 - JQuery
 
Simplificando o Javascrip
Simplificando o JavascripSimplificando o Javascrip
Simplificando o Javascrip
 
jQuery - Visão Geral
jQuery - Visão GeraljQuery - Visão Geral
jQuery - Visão Geral
 
Introdução ao JQuery e AJAX
Introdução ao JQuery e AJAXIntrodução ao JQuery e AJAX
Introdução ao JQuery e AJAX
 
JQuery Alagoinhas Dev Day - UNEB
JQuery Alagoinhas Dev Day - UNEBJQuery Alagoinhas Dev Day - UNEB
JQuery Alagoinhas Dev Day - UNEB
 
Java script aula 07 - j-query
Java script   aula 07 - j-queryJava script   aula 07 - j-query
Java script aula 07 - j-query
 
J530 14 xdoclet
J530 14 xdocletJ530 14 xdoclet
J530 14 xdoclet
 
Data mapping com Groovy - Part 2
Data mapping com Groovy - Part 2Data mapping com Groovy - Part 2
Data mapping com Groovy - Part 2
 
ODIG - Javascript, DOM Elements e jQuery
ODIG - Javascript, DOM Elements e jQueryODIG - Javascript, DOM Elements e jQuery
ODIG - Javascript, DOM Elements e jQuery
 
Migrando para o PHP 5
Migrando para o PHP 5Migrando para o PHP 5
Migrando para o PHP 5
 
Fluxo dinâmicos usando spring aplication
Fluxo dinâmicos usando spring aplicationFluxo dinâmicos usando spring aplication
Fluxo dinâmicos usando spring aplication
 
LPII_Aula_7-JQuery.pdf
LPII_Aula_7-JQuery.pdfLPII_Aula_7-JQuery.pdf
LPII_Aula_7-JQuery.pdf
 
Programação Orientada por Objectos - Aula 6
Programação Orientada por Objectos - Aula 6Programação Orientada por Objectos - Aula 6
Programação Orientada por Objectos - Aula 6
 
Workshop Django
Workshop DjangoWorkshop Django
Workshop Django
 
Palestra - Iniciando no Jquery
Palestra - Iniciando no JqueryPalestra - Iniciando no Jquery
Palestra - Iniciando no Jquery
 
JQuery - JS 101
JQuery - JS 101JQuery - JS 101
JQuery - JS 101
 
CSS & JQquery
CSS & JQqueryCSS & JQquery
CSS & JQquery
 
Minicurso de PHP Com Ajax
Minicurso de PHP Com AjaxMinicurso de PHP Com Ajax
Minicurso de PHP Com Ajax
 
LambdaDay: Backbone.js
LambdaDay: Backbone.jsLambdaDay: Backbone.js
LambdaDay: Backbone.js
 
React js
React js React js
React js
 

Mais de Alexandre Marreiros

Xamarin devdays 2017 - PT - connected apps
Xamarin devdays 2017 - PT - connected appsXamarin devdays 2017 - PT - connected apps
Xamarin devdays 2017 - PT - connected appsAlexandre Marreiros
 
ASP.NEt MVC and Angular What a couple
ASP.NEt MVC and Angular What a coupleASP.NEt MVC and Angular What a couple
ASP.NEt MVC and Angular What a coupleAlexandre Marreiros
 
Quick View of Angular JS for High School
Quick View of Angular JS for High SchoolQuick View of Angular JS for High School
Quick View of Angular JS for High SchoolAlexandre Marreiros
 
Pt xug xamarin pratices on big ui consumer apps
Pt xug  xamarin pratices on big ui consumer appsPt xug  xamarin pratices on big ui consumer apps
Pt xug xamarin pratices on big ui consumer appsAlexandre Marreiros
 
Gab2015 azure search as a service
Gab2015 azure search as a serviceGab2015 azure search as a service
Gab2015 azure search as a serviceAlexandre Marreiros
 
Universal Apps Development using HTML 5 and WINJS
Universal Apps Development using HTML 5 and WINJSUniversal Apps Development using HTML 5 and WINJS
Universal Apps Development using HTML 5 and WINJSAlexandre Marreiros
 
Windows8.1 html5 dev paradigm discussion netponto
Windows8.1 html5 dev paradigm discussion netpontoWindows8.1 html5 dev paradigm discussion netponto
Windows8.1 html5 dev paradigm discussion netpontoAlexandre Marreiros
 
Mobile first responsive industry sessions
Mobile first responsive industry sessionsMobile first responsive industry sessions
Mobile first responsive industry sessionsAlexandre Marreiros
 
Microsoft PT TechRefresh html win8.1
Microsoft PT TechRefresh html win8.1 Microsoft PT TechRefresh html win8.1
Microsoft PT TechRefresh html win8.1 Alexandre Marreiros
 
pragmatic Mobile apps choices frameworks and dev
pragmatic Mobile apps choices frameworks and devpragmatic Mobile apps choices frameworks and dev
pragmatic Mobile apps choices frameworks and devAlexandre Marreiros
 

Mais de Alexandre Marreiros (20)

Agular fromthetrenches2netponto
Agular fromthetrenches2netpontoAgular fromthetrenches2netponto
Agular fromthetrenches2netponto
 
Whats a Chat bot
Whats a Chat botWhats a Chat bot
Whats a Chat bot
 
Type of angular 2
Type of angular 2Type of angular 2
Type of angular 2
 
Xamarin devdays 2017 - PT - connected apps
Xamarin devdays 2017 - PT - connected appsXamarin devdays 2017 - PT - connected apps
Xamarin devdays 2017 - PT - connected apps
 
ASP.NEt MVC and Angular What a couple
ASP.NEt MVC and Angular What a coupleASP.NEt MVC and Angular What a couple
ASP.NEt MVC and Angular What a couple
 
Angular 2
Angular 2Angular 2
Angular 2
 
Quick View of Angular JS for High School
Quick View of Angular JS for High SchoolQuick View of Angular JS for High School
Quick View of Angular JS for High School
 
Pt xug xamarin pratices on big ui consumer apps
Pt xug  xamarin pratices on big ui consumer appsPt xug  xamarin pratices on big ui consumer apps
Pt xug xamarin pratices on big ui consumer apps
 
Get satrted angular js day 2
Get satrted angular js day 2Get satrted angular js day 2
Get satrted angular js day 2
 
Get satrted angular js
Get satrted angular jsGet satrted angular js
Get satrted angular js
 
Gab2015 azure search as a service
Gab2015 azure search as a serviceGab2015 azure search as a service
Gab2015 azure search as a service
 
Boot strapandresponsiveintro
Boot strapandresponsiveintroBoot strapandresponsiveintro
Boot strapandresponsiveintro
 
WebSite development using WinJS
WebSite development using WinJSWebSite development using WinJS
WebSite development using WinJS
 
Universal Apps Development using HTML 5 and WINJS
Universal Apps Development using HTML 5 and WINJSUniversal Apps Development using HTML 5 and WINJS
Universal Apps Development using HTML 5 and WINJS
 
Html5ignition newweborder
Html5ignition newweborderHtml5ignition newweborder
Html5ignition newweborder
 
Windows8.1 html5 dev paradigm discussion netponto
Windows8.1 html5 dev paradigm discussion netpontoWindows8.1 html5 dev paradigm discussion netponto
Windows8.1 html5 dev paradigm discussion netponto
 
Mobile first responsive industry sessions
Mobile first responsive industry sessionsMobile first responsive industry sessions
Mobile first responsive industry sessions
 
Microsoft PT TechRefresh html win8.1
Microsoft PT TechRefresh html win8.1 Microsoft PT TechRefresh html win8.1
Microsoft PT TechRefresh html win8.1
 
pragmatic Mobile apps choices frameworks and dev
pragmatic Mobile apps choices frameworks and devpragmatic Mobile apps choices frameworks and dev
pragmatic Mobile apps choices frameworks and dev
 
Windows8.1overviewnetponto
Windows8.1overviewnetpontoWindows8.1overviewnetponto
Windows8.1overviewnetponto
 

Jquery Technical Overview

  • 1. Introduction Jquery a Technical Overview Abril-2009, Alexandre Marreiros
  • 2. Agenda No agenda Sinta-se a vontade para interromper Pergunte Comente Todas as perguntas são validas.
  • 3. Javascript Libraries/Framework Porquê do uso? Visão da página html como um conjunto sendo um conjunto de objectos; em deterimento de navegação pelo DOM. CrossBrowsing styling, este tipo de plataformas procura dar suporte a aplicação de estilos de igual modo em qualquer browser; Focus na interacçaõ com o utilizador; Facilitam a execução de pedidos assincronos.
  • 4. DOM (Document Object Model) É uma interpretação cross plataform e relacional de um documento. Permite-nos olhar um qualquer documento que o suporte como um conjunto de elementos relacionados entre sí e com as suas próprias especificidades.
  • 5. A kind off a Object Ao utilizar o Dom como forma de interpretação de um documento, deixamos de ver o html como um conjunto de tags para ter uma visão de um conjunto de elementos. Cada elemento tem a sua forma de relacionamento com os restantes assim como os seus próprios atributos. Cada elemento é assim interpretado como um objecto…
  • 6. A object vision off the Document Permite isolar cada um dos elementos; Entende cada elemento como um conjunto de atributos propriedades e relações com outros elementos; Permite uma abstração do todo e aconcentração apenas no atomo; Etc…
  • 7. JQuery “Is a new kind of JavaScript Library. jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development. jQuery is designed to change the way that you write JavaScript. Lightweight Footprint ,CSS3 Compliant, Cross-browser” – Jquery.com
  • 8. Jquery II Preparado com um conjunto de animações, efeitos e widgets. Basics: show(), hide(), toggle() Slide: slideUp (), slideDown() Fading: fadeIn(), fadeOut() Custom A maior parte das animações permite estabelecer a velocidade e até callbacks
  • 9. Jquery Foundation Anonymous methods Factory Method Selectors
  • 10. JQuery Foundation II Anonymous methods Métodos anonimos são métodos sem nome que são declarados em runtime Permitemmaiorlegibilidadedocodigo Naosobrecarregam o engine do browser pois o código de um método anonimo só é interpretado no acto de execução  Em JQuery: $( function(){ alert( "I'm anonymous!" ); } );
  • 11. jQuery Foundation III Factory Method $() nomenculaturajQuery() factory method $( function ) – executa a funçãoapóstodososobjectos DOM teremsidocarregados $( selector ) – retornaumacoleção de elementosquetenhamcomoatributo o selector $( html ) – retornatodososelementos html queforamcriadosapós o carregamentodapágina. Uma coleção de elementos é designada é um stack.
  • 12. jQuery Foundation IV Selectors Cssslectors XpathSelectors CustomSelectors
  • 13. jQueryFoundation V Css Selectors $(“Selectors”) Suportatodososselectoresdefinidosnasespecificações de css da w3c e permiteatravés deles obterelementos e manipula-los… Querpelosnomes das classes, querpelalocalização, querpelo seucontextorelacional. $( "#header" ) – retornaumacoleção com todososelementosquetenham o id header; $( "div.note" ) – retornatodososdivsquecontenham a class note associada; $( "p" ) – retornaumacoleção com todososelementos p contidos no documento; $( "ul.listli" ) – combinação das duasanteriores; $( "a[ rel = 'home' ]" ) – coleção de links cujoatributorel é "home“ $( “#selected-plays > li" ) – retornaumacoleção de todososelementoscujo id é selected-plays e que tem um filho do tipo li. Etc.. Helper functions getParentWithClass() getParentWithTagName() Etc…
  • 14. jQueryFoundation VI Xpath selector XmlPathlanguage, permite iterar por diferentes elementos de um documento XML, e interpretar cada um deles como um objecto. $( ‘a[@title]’ ) – retorna o valor do atributo title de todososelementos a; $( ‘div[ul]’ ) – retornaumacoleção com todososelementos div do documentoque tem um elementoul; A selecçãoutilizandoatributospermiteutilizarumasintaxeproxima das regular expressions permitndoinsturções do tipo: $(‘a[@href^=“mail to”]’) – retornatodososelementos do tipo a quecontenham um hrefcomeçadopor mail to; $(‘a[@href$=“pdf”]’) – retornatodososelementos do tipo a quecontenham um hrefterminadoporpdf
  • 15. jQueryFoundation VII CustomSelectors A todos os selectores definidos o jQuery acrescentam ainda o seu conjunto de selectores. Particularmente uteis para a manipulação de tabelas e outros elementos complexos. Em elementos contentores o são disponibilizadas intruções do tipo: $(‘tr.odd’) – obtem todos os tr impares $(‘tr.even’) – obtem todos os tr pares $(‘div:nth-child(1)’) – obrtem todos os divs que são o primeiro filho do contentor onde se encontram.
  • 16. Rules off $() $() returns a jQuery collection containing 0+ elements Calls on an empty collection don't error When accessing values, usually only the first element is used When mutating values, usually all elements in collection are updated When mutating values, the jQuery object is usually returned - this allows for method chaining $().addClass( "one" ).addClass( "two" ).removeClass( "one" ) NOTE: Method chaining is "cool", but can hurt readability - don't overuse
  • 17. MethodsoverjQueryObject $().attr( name ) - Gets value of given attribute for first element $().attr( name, value | {options} ) - Sets values for all elements $().addClass() - Adds CSS class to all elements $().removeClass() - Removes CSS class from all elements $().css( name ) - Gets CSS value of given property for first element $().css( name, value | {options} ) - Sets CSS properties for all elements $().html() - Gets the inner HTML of the first element $().html( html ) - Sets the inner HTML of all elements $().text() - Gets the combined text of all elements $().text( text ) - Sets the text value of all elements $().val() - Gets the value attribute of first element $().val( val ) - Sets the value attribute of all elements $().append( html | element | jQuery ) - adds given content to the selected content $().appendTo( selector ) - adds given set to the selected set $().prepend() / $().prependTo() - Same as above, but prepends $().before( content ) - Inserts the given content before the selected elements $().after( content ) - Inserts the given content after the selected elements $().remove() - Removes selected elements from DOM $().empty() - Removes all children from given set of elements $().clone() - Creates a copy of the given set $().filter( selectors | function ) - Returns a sub-set of collection matching filter $().not( selectors ) - Returns a sub-set of collection not matching filter Nota: A filtragem de elementosnão é destrutivadacoleção
  • 18. MethodsoverjQueryObjectin Dom $().find( selectors ) - Gets the elements in the context of the given collection $().children( [selectors] ) - Gets the set of children of given elements $().parent( [selectors] ) - Gets the parent of each element in the given set $().prev( [selectors] ) - Gets the previous element of each element in given set $().prevAll( [selectors] ) - Gets all the previous elements of each element in given set $().next( [selectors] ) - Gets the next element of each element in given set $().nextAll( [selectors] ) - Gets the all the next elements of each element in given set
  • 19. IteratingoverjQueryobject Quando o stack é mesmoumacoleção $().each( function( intIndex, objElement ) ) – identicoaoforeach de muitaslinguagens É umafunção de contexto a iteração é feitasobre o elemento DOM indexado;
  • 20. Events Youcanbind as manyhandlers to a givenevent $().bind( eventType, function( objEvent ){} ) - Bindgivenfunction to giveneventtypeongivencollection Manybuilt-inshorthands: $().bind( "click", fn ) == $().click( fn ) $().trigger( eventType ) - Manuallytriggereventhandlers Manybuilt-inshorthands: $().trigger( "click" ) == $().click() return( false ) - Ineventhandler, preventsdefaultbehaviorandeventbubbling objEvent.preventDefault() - Ineventhandler, preventsdefaultevent (allowsbubbling) objEvent.stopPropagation() - Ineventhandler, preventsbubbling (allowsdefaultbehavior) NEW: live() / die() - Automaticallywireseventsbasedonselectors
  • 21. ExtendingjQuery Extender a bibliotecajQueryestápensado a doisniveisatravés de pluginsou de novos selectors Extender funções (extend $ object) Extenmderfunções dos contentores(extend $.fn object) Extender os selectors (extend $.expr[':'] object)
  • 22. Referencias www.jquery.com – site oficial; http://plugins.jquery.com – conjunto de plugins e exemplos Learning Jquery, better design and web development with simple Javascript techniques, Jonathan Chaffer & Karl Swedberg – Conceitos base da biblioteca; JQuery Reference Guide Jonathan Chaffer & Karl Swedberg – nutshel e referencia de cabeceira; JQuery in action – exemplos práticos e aplicação.