SlideShare uma empresa Scribd logo
Apresentação
● Ricardo Coelho
● Graduado em Ciência da Computação;
● Fundador do grupo PHP-Maranhão;
● Representante do Maranhão em eventos nacionais;
● Representante do Maranhão no PHP Brasil
Comunidades;
● Professor de Programação Web (Faculdade
Pitágoras);
● Auditor certificado NBR ISO/IEC 27001:2006
● Perito forense digital
● CTO da Nexy, empresa de auditoria de segurança e
tecnologia financeira com soluções SaaS em PHP.
Criando Plugins jQuery
Ricardo Coelho
Nexy Informática
J o quê?
O que é o jQuery?
Código Javascript Convencional
var http = false;
if(navigator.appName == "Microsoft Internet Explorer") {
http = new ActiveXObject("Microsoft.XMLHTTP");
} else {
http = new XMLHttpRequest();
}
function replace() {
http.open("GET", "test.txt", true);
http.onreadystatechange=function() {
if(http.readyState == 4) {
document.getElementById('foo').innerHTML =
http.responseText;
}
}
http.send(null);
}
Código jQuery
var http = false;
if(navigator.appName == "Microsoft Internet Explorer") {
http = new ActiveXObject("Microsoft.XMLHTTP");
} else {
http = new XMLHttpRequest();
}
function replace() {
http.open("GET", "test.txt", true);
http.onreadystatechange=function() {
if(http.readyState == 4) {
document.getElementById('foo').innerHTML =
http.responseText;
}
}
http.send(null);
}
$('#foo').load('test.txt');
Encadeamento
$('body')
.addClass('ninja')
.hide();
Porque criar um plugin?
Testes
SeletoresPacote
Reuso
GeneralizaçãoDevolver
à comunidade
Porque criar um plugin?
Testes
SeletoresPacote
Reuso
GeneralizaçãoDevolver
à comunidade
Fama e
Fortuna
Plugins existentes
4200+
jQuery UI, Forms, Masked Input,
JCarrousel, JCrop, JEditable, JsTree...
Em http://plugins.jquery.com você encontra
as seguintes categorias de plugins:
Ajax, Animation and Effects, Browser, Tweaks, Data, DOM, Drag-and-Drop,
Events, Forms, Integration, JavaScript, jQuery, Extensions, Layout, Media,
Menus, Metaplugin, Navigation, Tables, User, Interface, Utilities, Widgets,
Windows and Overlays
Criar plugins é tarefa para jedi?
NÃO.
Se você já usou jQuery,
já tem a metade de um plugin!
Qualquer um pode criar um plugin
Até esse cara!
/**
* Prugin do Abestado
*
* Ela me çeduis!
*/
$('#florentina')
.filter('.dejesus')
.addClass('çedutora');
Um plugin pode estender jQuery
● Ao definir uma nova função utilitária
● Ao definir um novo comando
Código básico
$(function () {
});
Código básico
function uma_funcao()
{
}
jQuery(uma_funcao);
Código básico
uma_funcao = function () {
}
jQuery(uma_funcao);
Código básico
jQuery(function () {
});
Código básico
$ é um apelido para jQuery.
$(function () {
});
Algumas regras básicas
jquery.meuplugin-1.0.js
Algumas regras básicas
Proteja o $
Algumas regras básicas
Preserve o encadeamento
Vamos ver um exemplo de efeito
Reuso da solução
Criando o plugin de fato
Preservando o encadeamento
Minificadores
● JSMin (Douglas Crockford)
● Shrink Safe (Dojo)
● Packer (Dean Edwards)
● Compressor Rater (Arthur Blake)
● YUICompressor (Yahoo)
Exemplo YUICompressor
Referências
● http://www.slideshare.net/1Marc/jquery-essentials
● http://developer.yahoo.com/yui/compressor/
● http://docs.jquery.com
● jQuery em ação
Obrigado!
Contatos
Ricardo Coelho
ricardo@nexy.com.br
http://www.nexy.com.br
@ramcoelho
Dúvidas?
Slides em:
http://www.slideshare.net/ram.coelho

Mais conteúdo relacionado

Mais procurados (9)

Node.js - #6 - Core Modules - net - Rodrigo Branas
Node.js - #6 - Core Modules - net - Rodrigo BranasNode.js - #6 - Core Modules - net - Rodrigo Branas
Node.js - #6 - Core Modules - net - Rodrigo Branas
Rodrigo Branas
 
Técnicas de Refactorización (EN ESPANOL)
Técnicas de Refactorización (EN ESPANOL)Técnicas de Refactorización (EN ESPANOL)
Técnicas de Refactorización (EN ESPANOL)
Rodrigo Branas
 
JavaScript - A Linguagem
JavaScript - A LinguagemJavaScript - A Linguagem
JavaScript - A Linguagem
Sérgio Souza Costa
 
Técnicas de Refactoring
Técnicas de RefactoringTécnicas de Refactoring
Técnicas de Refactoring
Rodrigo Branas
 
Testes automatizados (2)
Testes automatizados (2)Testes automatizados (2)
Testes automatizados (2)
cesarvianna
 
Criando aplicações Single-Page com AngularJS
Criando aplicações Single-Page com AngularJSCriando aplicações Single-Page com AngularJS
Criando aplicações Single-Page com AngularJS
Rodrigo Branas
 
Zend Framework 1.11
Zend Framework 1.11Zend Framework 1.11
Zend Framework 1.11
Cezar Souza
 
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo BranasNode.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Rodrigo Branas
 
Hello vue
Hello vueHello vue
Hello vue
Gabriel Colombo
 
Node.js - #6 - Core Modules - net - Rodrigo Branas
Node.js - #6 - Core Modules - net - Rodrigo BranasNode.js - #6 - Core Modules - net - Rodrigo Branas
Node.js - #6 - Core Modules - net - Rodrigo Branas
Rodrigo Branas
 
Técnicas de Refactorización (EN ESPANOL)
Técnicas de Refactorización (EN ESPANOL)Técnicas de Refactorización (EN ESPANOL)
Técnicas de Refactorización (EN ESPANOL)
Rodrigo Branas
 
Técnicas de Refactoring
Técnicas de RefactoringTécnicas de Refactoring
Técnicas de Refactoring
Rodrigo Branas
 
Testes automatizados (2)
Testes automatizados (2)Testes automatizados (2)
Testes automatizados (2)
cesarvianna
 
Criando aplicações Single-Page com AngularJS
Criando aplicações Single-Page com AngularJSCriando aplicações Single-Page com AngularJS
Criando aplicações Single-Page com AngularJS
Rodrigo Branas
 
Zend Framework 1.11
Zend Framework 1.11Zend Framework 1.11
Zend Framework 1.11
Cezar Souza
 
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo BranasNode.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Rodrigo Branas
 

Semelhante a Criando plugins jQuery (20)

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
Pablo Garrido
 
Artigoajax
ArtigoajaxArtigoajax
Artigoajax
MoisesInacio
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um Framework
Pablo Dall'Oglio
 
Desenhando aplicativos ricos para Web com jQuery
Desenhando aplicativos ricos para Web com jQueryDesenhando aplicativos ricos para Web com jQuery
Desenhando aplicativos ricos para Web com jQuery
Carlos Eduardo Alves
 
Desenvolvimento Do jQuery Light Box Plugin ao vivo
Desenvolvimento Do jQuery Light Box Plugin ao vivoDesenvolvimento Do jQuery Light Box Plugin ao vivo
Desenvolvimento Do jQuery Light Box Plugin ao vivo
Leandrinho Vieira
 
jQuery básico (parte 3)
jQuery básico (parte 3)jQuery básico (parte 3)
jQuery básico (parte 3)
Luís Cobucci
 
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
 
Google apps script - Parte 2
Google apps script - Parte 2Google apps script - Parte 2
Google apps script - Parte 2
Sérgio Souza Costa
 
Android na Prática
Android na PráticaAndroid na Prática
Android na Prática
Ramon Ribeiro Rabello
 
jQuery
jQueryjQuery
jQuery
Bruno Cunha
 
jQuery
jQueryjQuery
jQuery
Bruno Cunha
 
DevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webappsDevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webapps
Suissa
 
J query
J queryJ query
J query
ruanltbg
 
A vida além do jQuery
A vida além do jQueryA vida além do jQuery
A vida além do jQuery
Paulo Pires
 
Ajax em java
Ajax em javaAjax em java
Ajax em java
Maurício Linhares
 
Java Script
Java ScriptJava Script
Java Script
José Lamaison
 
Apostila_JavaScript_pela_axademia_ardkgfv
Apostila_JavaScript_pela_axademia_ardkgfvApostila_JavaScript_pela_axademia_ardkgfv
Apostila_JavaScript_pela_axademia_ardkgfv
erickrodrigo23
 
Desenvolvendo com Dojo Toolkit
Desenvolvendo com Dojo ToolkitDesenvolvendo com Dojo Toolkit
Desenvolvendo com Dojo Toolkit
Flávio Lisboa
 
Tutorial sobre Jquery
Tutorial sobre JqueryTutorial sobre Jquery
Tutorial sobre Jquery
Ivo Calado
 
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosa
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosaChrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosa
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosa
Joselito Nascimento
 
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
Pablo Garrido
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um Framework
Pablo Dall'Oglio
 
Desenhando aplicativos ricos para Web com jQuery
Desenhando aplicativos ricos para Web com jQueryDesenhando aplicativos ricos para Web com jQuery
Desenhando aplicativos ricos para Web com jQuery
Carlos Eduardo Alves
 
Desenvolvimento Do jQuery Light Box Plugin ao vivo
Desenvolvimento Do jQuery Light Box Plugin ao vivoDesenvolvimento Do jQuery Light Box Plugin ao vivo
Desenvolvimento Do jQuery Light Box Plugin ao vivo
Leandrinho Vieira
 
jQuery básico (parte 3)
jQuery básico (parte 3)jQuery básico (parte 3)
jQuery básico (parte 3)
Luís Cobucci
 
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
 
DevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webappsDevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webapps
Suissa
 
A vida além do jQuery
A vida além do jQueryA vida além do jQuery
A vida além do jQuery
Paulo Pires
 
Apostila_JavaScript_pela_axademia_ardkgfv
Apostila_JavaScript_pela_axademia_ardkgfvApostila_JavaScript_pela_axademia_ardkgfv
Apostila_JavaScript_pela_axademia_ardkgfv
erickrodrigo23
 
Desenvolvendo com Dojo Toolkit
Desenvolvendo com Dojo ToolkitDesenvolvendo com Dojo Toolkit
Desenvolvendo com Dojo Toolkit
Flávio Lisboa
 
Tutorial sobre Jquery
Tutorial sobre JqueryTutorial sobre Jquery
Tutorial sobre Jquery
Ivo Calado
 
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosa
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosaChrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosa
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosa
Joselito Nascimento
 

Mais de Ricardo Coelho (7)

Melhores Práticas em WebAPIs para mobile
Melhores Práticas em WebAPIs para mobileMelhores Práticas em WebAPIs para mobile
Melhores Práticas em WebAPIs para mobile
Ricardo Coelho
 
SaaS: funciona e eu vou provar
SaaS: funciona e eu vou provarSaaS: funciona e eu vou provar
SaaS: funciona e eu vou provar
Ricardo Coelho
 
pfa
pfapfa
pfa
Ricardo Coelho
 
Wordpress101
Wordpress101Wordpress101
Wordpress101
Ricardo Coelho
 
Subvertendo o codigo PHP com SVN - ENSOL
Subvertendo o codigo PHP com SVN - ENSOLSubvertendo o codigo PHP com SVN - ENSOL
Subvertendo o codigo PHP com SVN - ENSOL
Ricardo Coelho
 
Subvertendo o código PHP com SVN
Subvertendo o código PHP com SVNSubvertendo o código PHP com SVN
Subvertendo o código PHP com SVN
Ricardo Coelho
 
Php WatchDog
Php WatchDogPhp WatchDog
Php WatchDog
Ricardo Coelho
 
Melhores Práticas em WebAPIs para mobile
Melhores Práticas em WebAPIs para mobileMelhores Práticas em WebAPIs para mobile
Melhores Práticas em WebAPIs para mobile
Ricardo Coelho
 
SaaS: funciona e eu vou provar
SaaS: funciona e eu vou provarSaaS: funciona e eu vou provar
SaaS: funciona e eu vou provar
Ricardo Coelho
 
Subvertendo o codigo PHP com SVN - ENSOL
Subvertendo o codigo PHP com SVN - ENSOLSubvertendo o codigo PHP com SVN - ENSOL
Subvertendo o codigo PHP com SVN - ENSOL
Ricardo Coelho
 
Subvertendo o código PHP com SVN
Subvertendo o código PHP com SVNSubvertendo o código PHP com SVN
Subvertendo o código PHP com SVN
Ricardo Coelho
 

Último (8)

Fuzzing: Finding Your Own Bugs and 0days! 2.0 PT-BR by Rodolpho Concurde
Fuzzing: Finding Your Own Bugs and 0days! 2.0 PT-BR by Rodolpho ConcurdeFuzzing: Finding Your Own Bugs and 0days! 2.0 PT-BR by Rodolpho Concurde
Fuzzing: Finding Your Own Bugs and 0days! 2.0 PT-BR by Rodolpho Concurde
Rodolpho Concurde
 
Como Usar o packet tracer para auxiliar na criacao de rede
Como Usar o packet tracer para auxiliar na criacao de redeComo Usar o packet tracer para auxiliar na criacao de rede
Como Usar o packet tracer para auxiliar na criacao de rede
caioandradesje
 
sistemaoperacionalauladf=etecnologiaasss
sistemaoperacionalauladf=etecnologiaassssistemaoperacionalauladf=etecnologiaasss
sistemaoperacionalauladf=etecnologiaasss
ykira3820
 
Open Source: Ferramentas Gratuitas Incríveis
Open Source: Ferramentas Gratuitas IncríveisOpen Source: Ferramentas Gratuitas Incríveis
Open Source: Ferramentas Gratuitas Incríveis
Danilo Pinotti
 
Trailblazer Community de São Paulo - Explorando APEX
Trailblazer Community de São Paulo - Explorando APEXTrailblazer Community de São Paulo - Explorando APEX
Trailblazer Community de São Paulo - Explorando APEX
Francisco Vieira Júnior
 
Henrique Almeida Cv.pdf curriculo-logo.png
Henrique Almeida Cv.pdf curriculo-logo.pngHenrique Almeida Cv.pdf curriculo-logo.png
Henrique Almeida Cv.pdf curriculo-logo.png
Henrique490931
 
Introdução à Informática Alfabetização Digital
Introdução à Informática Alfabetização DigitalIntrodução à Informática Alfabetização Digital
Introdução à Informática Alfabetização Digital
IrmMariaGuilherme
 
Federal University of Santa Catarina (UFSC) - PySpark Tutorial
Federal University of Santa Catarina (UFSC) - PySpark TutorialFederal University of Santa Catarina (UFSC) - PySpark Tutorial
Federal University of Santa Catarina (UFSC) - PySpark Tutorial
Luiz Henrique Zambom Santana
 
Fuzzing: Finding Your Own Bugs and 0days! 2.0 PT-BR by Rodolpho Concurde
Fuzzing: Finding Your Own Bugs and 0days! 2.0 PT-BR by Rodolpho ConcurdeFuzzing: Finding Your Own Bugs and 0days! 2.0 PT-BR by Rodolpho Concurde
Fuzzing: Finding Your Own Bugs and 0days! 2.0 PT-BR by Rodolpho Concurde
Rodolpho Concurde
 
Como Usar o packet tracer para auxiliar na criacao de rede
Como Usar o packet tracer para auxiliar na criacao de redeComo Usar o packet tracer para auxiliar na criacao de rede
Como Usar o packet tracer para auxiliar na criacao de rede
caioandradesje
 
sistemaoperacionalauladf=etecnologiaasss
sistemaoperacionalauladf=etecnologiaassssistemaoperacionalauladf=etecnologiaasss
sistemaoperacionalauladf=etecnologiaasss
ykira3820
 
Open Source: Ferramentas Gratuitas Incríveis
Open Source: Ferramentas Gratuitas IncríveisOpen Source: Ferramentas Gratuitas Incríveis
Open Source: Ferramentas Gratuitas Incríveis
Danilo Pinotti
 
Trailblazer Community de São Paulo - Explorando APEX
Trailblazer Community de São Paulo - Explorando APEXTrailblazer Community de São Paulo - Explorando APEX
Trailblazer Community de São Paulo - Explorando APEX
Francisco Vieira Júnior
 
Henrique Almeida Cv.pdf curriculo-logo.png
Henrique Almeida Cv.pdf curriculo-logo.pngHenrique Almeida Cv.pdf curriculo-logo.png
Henrique Almeida Cv.pdf curriculo-logo.png
Henrique490931
 
Introdução à Informática Alfabetização Digital
Introdução à Informática Alfabetização DigitalIntrodução à Informática Alfabetização Digital
Introdução à Informática Alfabetização Digital
IrmMariaGuilherme
 
Federal University of Santa Catarina (UFSC) - PySpark Tutorial
Federal University of Santa Catarina (UFSC) - PySpark TutorialFederal University of Santa Catarina (UFSC) - PySpark Tutorial
Federal University of Santa Catarina (UFSC) - PySpark Tutorial
Luiz Henrique Zambom Santana
 

Criando plugins jQuery