SlideShare ist ein Scribd-Unternehmen logo
1 von 19
jQuery
Dicas e truques em 15 minutos



              Victor Cavalcante
  vcavalcante@lambda3.com.br
                  @vcavalcante
Victor Cavalcante
Cuidado com a versão 2.0
•   Vai sair esse ano (2013)
•   Ela não terá suporte para as versões do 6, 7 e 8 do IE
•   Qual o problema com isso?
•   Nenhum! :)
•   Mas saibam disso!
Você pode utilizar seletores no .load()
• O Load consome uma página e coloca o conteúdo onde
  você definir
• Com seletores você pode escolher qual parte da página
  você quer
     $("article").load("/customers");
     $("article").load("/customers h1:eq(0)");
Use o seletor ID ao invés de classe
  • jQuery usa a api nativa do browser
  • Quando não puder, pesquise através de um container




http://jsperf.com/jquery-sector-id-or-class
Faça cache da suas consultas
• Em vez de fazer assim:
$("ul   a").css("margin", "5px");
$("ul   a").css("background-color", "red");
$("ul   a").css("margin", "0px");
$("ul   a").css("background-color", "blue");
$("ul   a").show();
Faça cache da suas consultas
• Faça com cache:
var $links = $("ul a");
$links.css("margin", "5px");
$links.css("background-color", "red");
$links.css("margin", "0px");
$links.css("background-color", "blue");
$links.show();
Faça cache da suas consultas
 Ou utilize encadeamento:
  $("ul a")
     .css("margin", "5px")
     .css("background-color", "red")
     .css("margin", "0px")
     .css("background-color", "blue")
     .show();



http://jsperf.com/jquery-cache-selector
Não utilize .each() para tudo!!!
   $.each(a, function(index, number) {
       var e = number;});

   $(a).each(function(index, number) {
       var e = number;});
   for (var i = 0, len = a.length; i < len; i++) {
       var e = a[i];};


http://jsperf.com/jquery-each-x-for
Como criar elementos com jQuery?
   $("<div id='lambda3' class='devday'>Lambda3</div>");

   $("<div>",{id:'lambda3',class:'devday',text:'lambda3'});

   $("<div>").
      attr("id","lambda3").
      addClass('devday').
      text('lambda3');




http://jsperf.com/jquery-create-elements-string-object-methods/
Não use o live, deletegate e bind
• Utilize o método $.on() e $.off()
• A partir da versão 1.7 essa é a forma oficial para
  atachar eventos
Não use o live, delegate e bind
$('a').bind('click', myHandler);
$('a').on('click', myHandler);

$('form').bind('submit', { val: 42 }, fn);
$('form').on('submit', { val: 42 }, fn);

$(window).unbind('scroll.myPlugin');
$(window).off('scroll.myPlugin');

$('.comment').delegate('a.add', 'click', addNew);
$('.comment').on('click', 'a.add', addNew);

$('.dialog').undelegate('a', 'click.myDlg');
$('.dialog').off('click.myDlg', 'a');
Use filtro em vez de contexto!


  var painel = $('a.destaque', $('#contexto'));

  var painel = $('#contexto').filter("a.destaque");




http://jsperf.com/jquery-filter-vs-context
Queries
Quais são as formas de selecionar o link com destaque
que está na div produtos HTML?
<a href="#" class="destaque">destaque</a>
<section id="produtos">
  <ul>
    <li>
                                                  1.   $("#produtos a.destaque");
      <a href="#" class="destaque">destaque</a>   2.   $("#produtos .destaque");
    </li>                                         3.   $("#produtos").filter("a.destaque");
    <li>
      <a href="#">sem destaque</a>                4.   $("#produtos").filter(".destaque");
    </li>                                         5.   $(".destaque", $("#produtos"));
    <li>
      <a href="#">sem destaque</a>
    </li>
  </ul>
</section>


http://jsperf.com/jquery-selectors-vs-filter
Dúvidas?
1
Obrigado!
            Victor Cavalcante
vcavalcante@lambda3.com.br
                @vcavalcante
www.lambda3.com.br

Weitere ähnliche Inhalte

Was ist angesagt?

jQuery - Visão Geral
jQuery - Visão GeraljQuery - Visão Geral
jQuery - Visão GeralKaio Valente
 
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
 
Devrs net juntaai
Devrs net juntaaiDevrs net juntaai
Devrs net juntaaiTiago Totti
 
Descomplicando o JQuery - Introdução ao Framework
Descomplicando o JQuery - Introdução ao FrameworkDescomplicando o JQuery - Introdução ao Framework
Descomplicando o JQuery - Introdução ao FrameworkPablo Garrido
 
Criando uma arquitetura de front-end do zero
Criando uma arquitetura de front-end do zeroCriando uma arquitetura de front-end do zero
Criando uma arquitetura de front-end do zeroEduardo Shiota Yasuda
 
Além do Webdriver e Page Objects - Versão completa
Além do Webdriver e Page Objects - Versão completaAlém do Webdriver e Page Objects - Versão completa
Além do Webdriver e Page Objects - Versão completaCharles Kilesse
 
IBM - Apresentando jQuery
IBM - Apresentando jQueryIBM - Apresentando jQuery
IBM - Apresentando jQueryAlberto Leal
 
Wordpress como framework de desenvolvimento
Wordpress como framework de desenvolvimentoWordpress como framework de desenvolvimento
Wordpress como framework de desenvolvimentoRicardo Zein
 
Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JS
Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JSDesenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JS
Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JSRomulo Fagundes
 
Meu primeiro tema de WordPress
Meu primeiro tema de WordPressMeu primeiro tema de WordPress
Meu primeiro tema de WordPressLuan Muniz
 
Minicurso Testando RESTful Web Services
Minicurso Testando RESTful Web ServicesMinicurso Testando RESTful Web Services
Minicurso Testando RESTful Web ServicesCharles Kilesse
 
Desafios do Desenvolvimento de Front-end em um e-commerce
Desafios do Desenvolvimento de Front-end em um e-commerceDesafios do Desenvolvimento de Front-end em um e-commerce
Desafios do Desenvolvimento de Front-end em um e-commerceEduardo Shiota Yasuda
 
jQuery Mobile - Aplicações móveis com Javascript
jQuery Mobile - Aplicações móveis com JavascriptjQuery Mobile - Aplicações móveis com Javascript
jQuery Mobile - Aplicações móveis com JavascriptLuiz Oliveira
 

Was ist angesagt? (20)

Javascript + jQuery
Javascript + jQueryJavascript + jQuery
Javascript + jQuery
 
jQuery - Visão Geral
jQuery - Visão GeraljQuery - Visão Geral
jQuery - Visão Geral
 
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
 
Devrs net juntaai
Devrs net juntaaiDevrs net juntaai
Devrs net juntaai
 
Descomplicando o JQuery - Introdução ao Framework
Descomplicando o JQuery - Introdução ao FrameworkDescomplicando o JQuery - Introdução ao Framework
Descomplicando o JQuery - Introdução ao Framework
 
Criando uma arquitetura de front-end do zero
Criando uma arquitetura de front-end do zeroCriando uma arquitetura de front-end do zero
Criando uma arquitetura de front-end do zero
 
Java script aula 06 - dom
Java script   aula 06 - domJava script   aula 06 - dom
Java script aula 06 - dom
 
JQuery
JQueryJQuery
JQuery
 
Jquery Mobile
Jquery MobileJquery Mobile
Jquery Mobile
 
Além do Webdriver e Page Objects - Versão completa
Além do Webdriver e Page Objects - Versão completaAlém do Webdriver e Page Objects - Versão completa
Além do Webdriver e Page Objects - Versão completa
 
CSS & JQquery
CSS & JQqueryCSS & JQquery
CSS & JQquery
 
Web 3.0
Web 3.0Web 3.0
Web 3.0
 
IBM - Apresentando jQuery
IBM - Apresentando jQueryIBM - Apresentando jQuery
IBM - Apresentando jQuery
 
Wordpress como framework de desenvolvimento
Wordpress como framework de desenvolvimentoWordpress como framework de desenvolvimento
Wordpress como framework de desenvolvimento
 
Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JS
Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JSDesenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JS
Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JS
 
Meu primeiro tema de WordPress
Meu primeiro tema de WordPressMeu primeiro tema de WordPress
Meu primeiro tema de WordPress
 
Plugin zend acl
Plugin zend aclPlugin zend acl
Plugin zend acl
 
Minicurso Testando RESTful Web Services
Minicurso Testando RESTful Web ServicesMinicurso Testando RESTful Web Services
Minicurso Testando RESTful Web Services
 
Desafios do Desenvolvimento de Front-end em um e-commerce
Desafios do Desenvolvimento de Front-end em um e-commerceDesafios do Desenvolvimento de Front-end em um e-commerce
Desafios do Desenvolvimento de Front-end em um e-commerce
 
jQuery Mobile - Aplicações móveis com Javascript
jQuery Mobile - Aplicações móveis com JavascriptjQuery Mobile - Aplicações móveis com Javascript
jQuery Mobile - Aplicações móveis com Javascript
 

Andere mochten auch

Konjunkturbarometer oktober 2013 (15.11)
Konjunkturbarometer   oktober 2013 (15.11)Konjunkturbarometer   oktober 2013 (15.11)
Konjunkturbarometer oktober 2013 (15.11)FrederikFunder
 
The SEO Guide For Event Planners
The SEO Guide For Event PlannersThe SEO Guide For Event Planners
The SEO Guide For Event PlannersBizzabo
 
The Complete Guide To Event Hashtags
The Complete Guide To Event HashtagsThe Complete Guide To Event Hashtags
The Complete Guide To Event HashtagsBizzabo
 
Konjunkturbarometer juni 2013 (06.07.13)
Konjunkturbarometer   juni 2013 (06.07.13)Konjunkturbarometer   juni 2013 (06.07.13)
Konjunkturbarometer juni 2013 (06.07.13)FrederikFunder
 
Op og ned for erhvervskøretøjer, 19.09.13
Op og ned for erhvervskøretøjer, 19.09.13Op og ned for erhvervskøretøjer, 19.09.13
Op og ned for erhvervskøretøjer, 19.09.13FrederikFunder
 
CJ Awesome Flavors Product Sheet
CJ Awesome Flavors Product SheetCJ Awesome Flavors Product Sheet
CJ Awesome Flavors Product SheetDonald Mack
 
Memorias de una sirena
Memorias de una sirenaMemorias de una sirena
Memorias de una sirenaKarina Zuñiga
 
Shift happens. Are you in denial? For how long?
Shift happens.  Are you in denial?  For how long?Shift happens.  Are you in denial?  For how long?
Shift happens. Are you in denial? For how long?Michael Boll
 
Le cinéma espagnol et son public français.
Le cinéma espagnol et son public français.Le cinéma espagnol et son public français.
Le cinéma espagnol et son public français.Liz444
 
Op og ned for erhvervskøretøjer, 19.12.13
Op og ned for erhvervskøretøjer, 19.12.13Op og ned for erhvervskøretøjer, 19.12.13
Op og ned for erhvervskøretøjer, 19.12.13FrederikFunder
 
Blitz december 2013 17.dec.
Blitz december 2013   17.dec.Blitz december 2013   17.dec.
Blitz december 2013 17.dec.FrederikFunder
 
Podcasting for educators working session
Podcasting for educators working sessionPodcasting for educators working session
Podcasting for educators working sessionMichael Boll
 
Podcasting for Educators
Podcasting for EducatorsPodcasting for Educators
Podcasting for EducatorsMichael Boll
 
2013 web booster book
2013 web booster book2013 web booster book
2013 web booster bookcoachrico
 
04.07.13 konjunkturbarometer bil (juni)
04.07.13   konjunkturbarometer bil (juni)04.07.13   konjunkturbarometer bil (juni)
04.07.13 konjunkturbarometer bil (juni)FrederikFunder
 
Reaching the non traditional student (PDF)
Reaching the non traditional student (PDF) Reaching the non traditional student (PDF)
Reaching the non traditional student (PDF) Michael Boll
 

Andere mochten auch (20)

Konjunkturbarometer oktober 2013 (15.11)
Konjunkturbarometer   oktober 2013 (15.11)Konjunkturbarometer   oktober 2013 (15.11)
Konjunkturbarometer oktober 2013 (15.11)
 
The SEO Guide For Event Planners
The SEO Guide For Event PlannersThe SEO Guide For Event Planners
The SEO Guide For Event Planners
 
Lily
LilyLily
Lily
 
The Complete Guide To Event Hashtags
The Complete Guide To Event HashtagsThe Complete Guide To Event Hashtags
The Complete Guide To Event Hashtags
 
Konjunkturbarometer juni 2013 (06.07.13)
Konjunkturbarometer   juni 2013 (06.07.13)Konjunkturbarometer   juni 2013 (06.07.13)
Konjunkturbarometer juni 2013 (06.07.13)
 
Op og ned for erhvervskøretøjer, 19.09.13
Op og ned for erhvervskøretøjer, 19.09.13Op og ned for erhvervskøretøjer, 19.09.13
Op og ned for erhvervskøretøjer, 19.09.13
 
CJ Awesome Flavors Product Sheet
CJ Awesome Flavors Product SheetCJ Awesome Flavors Product Sheet
CJ Awesome Flavors Product Sheet
 
Memorias de una sirena
Memorias de una sirenaMemorias de una sirena
Memorias de una sirena
 
Mario
MarioMario
Mario
 
Shift happens. Are you in denial? For how long?
Shift happens.  Are you in denial?  For how long?Shift happens.  Are you in denial?  For how long?
Shift happens. Are you in denial? For how long?
 
Le cinéma espagnol et son public français.
Le cinéma espagnol et son public français.Le cinéma espagnol et son public français.
Le cinéma espagnol et son public français.
 
Op og ned for erhvervskøretøjer, 19.12.13
Op og ned for erhvervskøretøjer, 19.12.13Op og ned for erhvervskøretøjer, 19.12.13
Op og ned for erhvervskøretøjer, 19.12.13
 
Blitz december 2013 17.dec.
Blitz december 2013   17.dec.Blitz december 2013   17.dec.
Blitz december 2013 17.dec.
 
Podcasting for educators working session
Podcasting for educators working sessionPodcasting for educators working session
Podcasting for educators working session
 
Podcasting for Educators
Podcasting for EducatorsPodcasting for Educators
Podcasting for Educators
 
2013 web booster book
2013 web booster book2013 web booster book
2013 web booster book
 
04.07.13 konjunkturbarometer bil (juni)
04.07.13   konjunkturbarometer bil (juni)04.07.13   konjunkturbarometer bil (juni)
04.07.13 konjunkturbarometer bil (juni)
 
Reaching the non traditional student (PDF)
Reaching the non traditional student (PDF) Reaching the non traditional student (PDF)
Reaching the non traditional student (PDF)
 
Oscars
OscarsOscars
Oscars
 
Saoirse
SaoirseSaoirse
Saoirse
 

Ähnlich wie jQuery Dicas 15min

Palestra - Iniciando no Jquery
Palestra - Iniciando no JqueryPalestra - Iniciando no Jquery
Palestra - Iniciando no Jquerygrupoweblovers
 
Simplificando o Javascrip
Simplificando o JavascripSimplificando o Javascrip
Simplificando o JavascripMiquéias Amaro
 
LPII_Aula_7-JQuery.pdf
LPII_Aula_7-JQuery.pdfLPII_Aula_7-JQuery.pdf
LPII_Aula_7-JQuery.pdfGabrielaMota46
 
JavaScript e JQuery para Webdesigners
JavaScript e JQuery para WebdesignersJavaScript e JQuery para Webdesigners
JavaScript e JQuery para WebdesignersHarlley Oliveira
 
jQuery na Prática - Cauê Fajoli
jQuery na Prática - Cauê FajolijQuery na Prática - Cauê Fajoli
jQuery na Prática - Cauê FajoliCaue Fajoli
 
Como Perder Peso (no browser)
Como Perder Peso (no browser)Como Perder Peso (no browser)
Como Perder Peso (no browser)Zeno Rocha
 
JavaScript ninja com jQuery
JavaScript ninja com jQueryJavaScript ninja com jQuery
JavaScript ninja com jQueryReinaldo Junior
 
Tutorial sobre Jquery
Tutorial sobre JqueryTutorial sobre Jquery
Tutorial sobre JqueryIvo Calado
 
JQuery Alagoinhas Dev Day - UNEB
JQuery Alagoinhas Dev Day - UNEBJQuery Alagoinhas Dev Day - UNEB
JQuery Alagoinhas Dev Day - UNEBLuciano Borges
 
Introdução ao framework CakePHP
Introdução ao framework CakePHPIntrodução ao framework CakePHP
Introdução ao framework CakePHPigorpimentel
 
TDC 2015 - Rails & Javascript: faça isso direito
TDC 2015 - Rails & Javascript: faça isso direitoTDC 2015 - Rails & Javascript: faça isso direito
TDC 2015 - Rails & Javascript: faça isso direitoCezinha Anjos
 
RubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direitoRubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direitoCezinha Anjos
 

Ähnlich wie jQuery Dicas 15min (20)

Java script aula 07 - j-query
Java script   aula 07 - j-queryJava script   aula 07 - j-query
Java script aula 07 - j-query
 
Palestra - Iniciando no Jquery
Palestra - Iniciando no JqueryPalestra - Iniciando no Jquery
Palestra - Iniciando no Jquery
 
jQuery
jQueryjQuery
jQuery
 
Simplificando o Javascrip
Simplificando o JavascripSimplificando o Javascrip
Simplificando o Javascrip
 
LPII_Aula_7-JQuery.pdf
LPII_Aula_7-JQuery.pdfLPII_Aula_7-JQuery.pdf
LPII_Aula_7-JQuery.pdf
 
Java script aula 09 - JQuery
Java script   aula 09 - JQueryJava script   aula 09 - JQuery
Java script aula 09 - JQuery
 
Minicurso de jQuery
Minicurso de jQueryMinicurso de jQuery
Minicurso de jQuery
 
JavaScript e JQuery para Webdesigners
JavaScript e JQuery para WebdesignersJavaScript e JQuery para Webdesigners
JavaScript e JQuery para Webdesigners
 
Introdução ao JQuery e AJAX
Introdução ao JQuery e AJAXIntrodução ao JQuery e AJAX
Introdução ao JQuery e AJAX
 
jQuery na Prática - Cauê Fajoli
jQuery na Prática - Cauê FajolijQuery na Prática - Cauê Fajoli
jQuery na Prática - Cauê Fajoli
 
Como Perder Peso (no browser)
Como Perder Peso (no browser)Como Perder Peso (no browser)
Como Perder Peso (no browser)
 
Programação Web com jQuery
Programação Web com jQueryProgramação Web com jQuery
Programação Web com jQuery
 
JavaScript ninja com jQuery
JavaScript ninja com jQueryJavaScript ninja com jQuery
JavaScript ninja com jQuery
 
Tutorial sobre Jquery
Tutorial sobre JqueryTutorial sobre Jquery
Tutorial sobre Jquery
 
jQuery na Prática!
jQuery na Prática!jQuery na Prática!
jQuery na Prática!
 
JQuery Alagoinhas Dev Day - UNEB
JQuery Alagoinhas Dev Day - UNEBJQuery Alagoinhas Dev Day - UNEB
JQuery Alagoinhas Dev Day - UNEB
 
Introdução ao framework CakePHP
Introdução ao framework CakePHPIntrodução ao framework CakePHP
Introdução ao framework CakePHP
 
TDC 2015 - Rails & Javascript: faça isso direito
TDC 2015 - Rails & Javascript: faça isso direitoTDC 2015 - Rails & Javascript: faça isso direito
TDC 2015 - Rails & Javascript: faça isso direito
 
RubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direitoRubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direito
 
Programação Web com jQuery
Programação Web com jQueryProgramação Web com jQuery
Programação Web com jQuery
 

Mehr von Lambda 3

Marketing de Produtos Digitais
Marketing de Produtos DigitaisMarketing de Produtos Digitais
Marketing de Produtos DigitaisLambda 3
 
Experiências, Erros e Acertos no Desenvolvimento de Projetos Ágeis
Experiências, Erros e Acertos no Desenvolvimento de Projetos ÁgeisExperiências, Erros e Acertos no Desenvolvimento de Projetos Ágeis
Experiências, Erros e Acertos no Desenvolvimento de Projetos ÁgeisLambda 3
 
Técnicas de Programação Funcional
Técnicas de Programação FuncionalTécnicas de Programação Funcional
Técnicas de Programação FuncionalLambda 3
 
Source Control
Source ControlSource Control
Source ControlLambda 3
 
Como você está criando os seus objetos?
Como você está criando os seus objetos?Como você está criando os seus objetos?
Como você está criando os seus objetos?Lambda 3
 
Keynote Lambda Day
Keynote Lambda DayKeynote Lambda Day
Keynote Lambda DayLambda 3
 
Novidades ALM Summit 2013
Novidades ALM Summit 2013Novidades ALM Summit 2013
Novidades ALM Summit 2013Lambda 3
 
Backbone.js nas trincheiras
Backbone.js nas trincheirasBackbone.js nas trincheiras
Backbone.js nas trincheirasLambda 3
 

Mehr von Lambda 3 (8)

Marketing de Produtos Digitais
Marketing de Produtos DigitaisMarketing de Produtos Digitais
Marketing de Produtos Digitais
 
Experiências, Erros e Acertos no Desenvolvimento de Projetos Ágeis
Experiências, Erros e Acertos no Desenvolvimento de Projetos ÁgeisExperiências, Erros e Acertos no Desenvolvimento de Projetos Ágeis
Experiências, Erros e Acertos no Desenvolvimento de Projetos Ágeis
 
Técnicas de Programação Funcional
Técnicas de Programação FuncionalTécnicas de Programação Funcional
Técnicas de Programação Funcional
 
Source Control
Source ControlSource Control
Source Control
 
Como você está criando os seus objetos?
Como você está criando os seus objetos?Como você está criando os seus objetos?
Como você está criando os seus objetos?
 
Keynote Lambda Day
Keynote Lambda DayKeynote Lambda Day
Keynote Lambda Day
 
Novidades ALM Summit 2013
Novidades ALM Summit 2013Novidades ALM Summit 2013
Novidades ALM Summit 2013
 
Backbone.js nas trincheiras
Backbone.js nas trincheirasBackbone.js nas trincheiras
Backbone.js nas trincheiras
 

jQuery Dicas 15min

  • 1. jQuery Dicas e truques em 15 minutos Victor Cavalcante vcavalcante@lambda3.com.br @vcavalcante
  • 2.
  • 4. Cuidado com a versão 2.0 • Vai sair esse ano (2013) • Ela não terá suporte para as versões do 6, 7 e 8 do IE • Qual o problema com isso? • Nenhum! :) • Mas saibam disso!
  • 5. Você pode utilizar seletores no .load() • O Load consome uma página e coloca o conteúdo onde você definir • Com seletores você pode escolher qual parte da página você quer $("article").load("/customers"); $("article").load("/customers h1:eq(0)");
  • 6. Use o seletor ID ao invés de classe • jQuery usa a api nativa do browser • Quando não puder, pesquise através de um container http://jsperf.com/jquery-sector-id-or-class
  • 7. Faça cache da suas consultas • Em vez de fazer assim: $("ul a").css("margin", "5px"); $("ul a").css("background-color", "red"); $("ul a").css("margin", "0px"); $("ul a").css("background-color", "blue"); $("ul a").show();
  • 8. Faça cache da suas consultas • Faça com cache: var $links = $("ul a"); $links.css("margin", "5px"); $links.css("background-color", "red"); $links.css("margin", "0px"); $links.css("background-color", "blue"); $links.show();
  • 9. Faça cache da suas consultas Ou utilize encadeamento: $("ul a") .css("margin", "5px") .css("background-color", "red") .css("margin", "0px") .css("background-color", "blue") .show(); http://jsperf.com/jquery-cache-selector
  • 10. Não utilize .each() para tudo!!! $.each(a, function(index, number) { var e = number;}); $(a).each(function(index, number) { var e = number;}); for (var i = 0, len = a.length; i < len; i++) { var e = a[i];}; http://jsperf.com/jquery-each-x-for
  • 11. Como criar elementos com jQuery? $("<div id='lambda3' class='devday'>Lambda3</div>"); $("<div>",{id:'lambda3',class:'devday',text:'lambda3'}); $("<div>"). attr("id","lambda3"). addClass('devday'). text('lambda3'); http://jsperf.com/jquery-create-elements-string-object-methods/
  • 12. Não use o live, deletegate e bind • Utilize o método $.on() e $.off() • A partir da versão 1.7 essa é a forma oficial para atachar eventos
  • 13. Não use o live, delegate e bind $('a').bind('click', myHandler); $('a').on('click', myHandler); $('form').bind('submit', { val: 42 }, fn); $('form').on('submit', { val: 42 }, fn); $(window).unbind('scroll.myPlugin'); $(window).off('scroll.myPlugin'); $('.comment').delegate('a.add', 'click', addNew); $('.comment').on('click', 'a.add', addNew); $('.dialog').undelegate('a', 'click.myDlg'); $('.dialog').off('click.myDlg', 'a');
  • 14. Use filtro em vez de contexto! var painel = $('a.destaque', $('#contexto')); var painel = $('#contexto').filter("a.destaque"); http://jsperf.com/jquery-filter-vs-context
  • 15. Queries Quais são as formas de selecionar o link com destaque que está na div produtos HTML? <a href="#" class="destaque">destaque</a> <section id="produtos"> <ul> <li> 1. $("#produtos a.destaque"); <a href="#" class="destaque">destaque</a> 2. $("#produtos .destaque"); </li> 3. $("#produtos").filter("a.destaque"); <li> <a href="#">sem destaque</a> 4. $("#produtos").filter(".destaque"); </li> 5. $(".destaque", $("#produtos")); <li> <a href="#">sem destaque</a> </li> </ul> </section> http://jsperf.com/jquery-selectors-vs-filter
  • 17. 1
  • 18. Obrigado! Victor Cavalcante vcavalcante@lambda3.com.br @vcavalcante