SlideShare uma empresa Scribd logo
jQuery
Dicas e truques em 15 minutos



              Victor Cavalcante
  vcavalcante@lambda3.com.br
                  @vcavalcante
Jquery - Dicas e Truques
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

Mais conteúdo relacionado

PPTX
LambdaDay: Backbone.js
PDF
Backbone.js + Rails - Front-end e back-end conectados
PDF
o nome disso é performance
PDF
JavaScript Model-View no Frontend
ODP
Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)
PPTX
PDF
modernizando a arquitertura de sua aplicação
PDF
jQuery
LambdaDay: Backbone.js
Backbone.js + Rails - Front-end e back-end conectados
o nome disso é performance
JavaScript Model-View no Frontend
Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)
modernizando a arquitertura de sua aplicação
jQuery

Mais procurados (20)

KEY
Javascript + jQuery
PPTX
jQuery - Visão Geral
PDF
Aplicações rápidas para a Web com Django
PDF
Devrs net juntaai
PPS
Descomplicando o JQuery - Introdução ao Framework
PDF
Criando uma arquitetura de front-end do zero
PDF
Java script aula 06 - dom
PPTX
PPTX
Jquery Mobile
PDF
Além do Webdriver e Page Objects - Versão completa
PPT
CSS & JQquery
PDF
Web 3.0
PPT
IBM - Apresentando jQuery
PDF
Wordpress como framework de desenvolvimento
PDF
Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JS
PPTX
Meu primeiro tema de WordPress
PDF
Plugin zend acl
PDF
Minicurso Testando RESTful Web Services
PDF
Desafios do Desenvolvimento de Front-end em um e-commerce
PPT
jQuery Mobile - Aplicações móveis com Javascript
Javascript + jQuery
jQuery - Visão Geral
Aplicações rápidas para a Web com Django
Devrs net juntaai
Descomplicando o JQuery - Introdução ao Framework
Criando uma arquitetura de front-end do zero
Java script aula 06 - dom
Jquery Mobile
Além do Webdriver e Page Objects - Versão completa
CSS & JQquery
Web 3.0
IBM - Apresentando jQuery
Wordpress como framework de desenvolvimento
Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JS
Meu primeiro tema de WordPress
Plugin zend acl
Minicurso Testando RESTful Web Services
Desafios do Desenvolvimento de Front-end em um e-commerce
jQuery Mobile - Aplicações móveis com Javascript
Anúncio

Destaque (20)

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

Semelhante a Jquery - Dicas e Truques (20)

PPT
Aprenda jQuery 1.3
PDF
jQuery na Prática!
PPTX
Jquery a technical overview
PDF
Simplificando o Javascrip
PDF
Minicurso de jQuery
PDF
jQuery
PDF
Java script aula 09 - JQuery
PDF
Introdução ao JQuery e AJAX
PPTX
jQuery na Prática - Cauê Fajoli
PDF
Programação Web com jQuery
PDF
Introdução à JQuery
PDF
Java script aula 07 - j-query
PDF
LPII_Aula_7-JQuery.pdf
PPTX
MiniCurso Jquery - IV SimSis
PDF
jQuery Simplificando o JavaScript
PDF
Programação Web com jQuery
PDF
Introdução às Bibliotecas jQuery/ jQuery UI
PPTX
Javascript para CSharpers - Append B - jQuery
ODP
Introdução a jQuery
PPTX
jQuery básico (parte 2)
Aprenda jQuery 1.3
jQuery na Prática!
Jquery a technical overview
Simplificando o Javascrip
Minicurso de jQuery
jQuery
Java script aula 09 - JQuery
Introdução ao JQuery e AJAX
jQuery na Prática - Cauê Fajoli
Programação Web com jQuery
Introdução à JQuery
Java script aula 07 - j-query
LPII_Aula_7-JQuery.pdf
MiniCurso Jquery - IV SimSis
jQuery Simplificando o JavaScript
Programação Web com jQuery
Introdução às Bibliotecas jQuery/ jQuery UI
Javascript para CSharpers - Append B - jQuery
Introdução a jQuery
jQuery básico (parte 2)

Mais de Lambda 3 (8)

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

Jquery - Dicas e Truques

  • 1. jQuery Dicas e truques em 15 minutos Victor Cavalcante vcavalcante@lambda3.com.br @vcavalcante
  • 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