SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
UX-DAY
JQuery
Write less, Do more
SMAHI Zakaria <z_smahi@esi.dz>
C'est quoi JQuery ?
● Javascript framework
● Interaction entre JavaScript (AJAX inclus) et HTML.
● John Resig Janvier 2006. 120Ko (19ko compressé en format
gzip).
● Populaire, Open Source ( MIT & Gnu GPL), bien documenté et
extensible.
● Nombreux plugins.
● Mis à jour réguliérement. (version 1.9 et 2.0).
● Normalise les différences entre les navigateurs web.
● Sites: Google, Amazon, Mozilla.org, Facebook, Wordpress,
Drupal...etc.
Que Faire/Ne pas faire ?
● Faire :
● Gérer les interactions avec
l'utilisateur.
● Prétraiter les formulaires.
● Créer des animations et effets.
● Manipuler le DOM.
● Utiliser AJAX simplement.
● Créer des RIA (rich Internet
Applications).
● Ne pas Faire :
● Remplacer par un langage
coté serveur ( php, asp,
jsp).
● Remplacer totalement flash
et HTML.
● Remplacer un rôle
sécuritaire.
Outils de développement
● Editeur de texte (Notepad++, Gedit, Notepad ...etc. ).
● Navigateur web (Mozilla Firefox, Google Chrome ).
● Extension de développement (Firebug sous firefox,
Outils de développement sous Chrome ...etc. )
$( )
● Fonction de base de JQuery.
● Alias de la fonction JQuery.
● Permet d'associer le démarrage du script sur
l'event ready du document + sélectionner les
éléments de la page à manipuler par la suite.
$(doument).ready()
● Démarre la fonction anonyme lorsque les
éléments de la page sont prêts.
● <script type= « text/javascript » >
$(document).ready(function(){
// ici du code ;
}) ;
</script>
Sélécteurs
● Viser les éléments de la page à manipuler.
● La fonction $().
● Syntaxe des sélécteurs CSS( 1, 2 et 3) et XPath.
● Renvoie un ou plusieurs objets JQuery.
var objet = $(« sélécteur ») ;
● var objet = $(« #monId ») ; // Id
● var objet = $(« .maClasse ») ; // Classe
● var objet = $(« div ») ; // Tag
Sélécteurs
● <div>
<ul>
<li>
</li>
</ul>
</div>
<p> paragraphe 1 </p>
<p> paragraphe 2 </p>
<p> paragraphe 3 </p>
● Hiérarchie : ancêtre et
descendant
$(« div ul ») ; $(« div ul li ») ;
● Hiérarchie : parent et enfant
$(« div > ul ») ;
● Hiérarchie : précédent et suivant
$(« div + p ») ;
● Hiérarchie : frère et frères
$(« div ~ p ») ;
Sélécteurs Magiques
(Filtres)
● :first, :last, :even, :odd, :eq, :lt,
:gt
● :nth-child(), :first-child(), :last-
child(), :only-child()
● :hidden,:visible
● :header
● :parent
● :has(élément)
● :contains(« texte »)
● :empty, :not(négation)
● Sur attribut :
$(« input [type=submit] ») ;
$(« input [type !=submit] ») ;
● Expression réguliéres :
^= ( débute par …).
$= ( finit par …).
*= (contient la valeur …).
● [attr1][attr2] : contient les
attributs...
● Formulaires :
$(« #formulaire :checkbox ») ;
$(« #formulaire
:checkbox:checked») ;
Collections JQuery
● $('div.section') retourne une collection JQuery.
● La collection peut être manipulée comme un tableau :
$('div.section').length (ou .size) = n° des éléments.
$('div.section')[0] : le 1er élément DOM sous div
$('div.section')[2]
$('div.section').each(function() {
console.log(this);
});
$('div.section').each(function(i) {
console.log("Item " + i + " is ", this);
});
HTML futzing
● $('span#msg').text('The thing was updated!');
● $('div#intro').html('<em>Look, HTML</em>');
Attribute futzing
$('a.nav').attr('href', 'http://flickr.com/');
● $('a.nav').attr({
'href': 'http://flickr.com/',
'id': 'flickr'
});
● $('#intro').removeAttr('id');
CSS futzing
● $('#intro').addClass('highlighted');
● $('#intro').removeClass('highlighted');
● $('#intro').toggleClass('highlighted');
● $('p').css('font-size', '20px');
● $('p').css({'font-size': '20px', color: 'red'});
Méthodes et Valeurs
● Certaines méthodes font retourner un(des)
résultat(s) depuis le 1er élément
correspondant.
● var height = $('div#intro').height();
● var src = $('img.photo').attr('src');
● var lastP = $('p:last').html()
● var hasFoo = $('p').hasClass('foo');
● var email = $('input#email').val();
Manipulation du DOM
● JQuery fournit plusieurs méthodes pour manipuler
le DOM( Document Object Model)
● Manipulation du contenu: selector.html( )
● Remplacement d'un élément DOM:
selector.replaceWith( content )
● Supprimer un élément : selector.remove( [ expr ]) |
selector.empty( )
● Insertion d'un élément : selector.after( content ) |
selector.before( content ).
Traverser le DOM
● $('div.section').parent()
● $('div.section').next()
● $('div.section').prev()
● $('div.section').nextAll('div')
● $('h1:first').parents()
Gestion des événements
● $('a:first').click(function(ev) {
$(this).css({backgroundColor: 'orange'});
return false; // Or ev.preventDefault();
});
● $('a:first').click();
Astuce cool ;)
● $(document).ready(function() {
alert('DOM est prêt!');
});
● $(function() {
alert('DOM est prêt!');
});
Chainage
● La plupart des méthodes JQuery retournent un
autre objet JQuery → Possibilté de chainer les
méthodes entre eux :
● $('div.section').hide().addClass('gone');
● $('#intro').css('color',
'#cccccc').find('a').addClass('highlighted').end().
find('em').css('color', 'red').end()
AJAX
● JQuery supporte très bien AJAX.
● $('div#intro').load('/some/file.html');
● $.get(url, params, callback)
● $.post(url, params, callback)
● $.getJSON(url, params, callback)
● $.getScript(url, callback)
Animations
● JQuery a quelques effets d'animations :
$('h1').hide('slow');
$('h1').slideDown('fast');
$('h1').fadeOut(2000);
● Un chainage : $('h1').fadeOut(1000).slideDown()
● Créer vos propres animation ;)
$("#block").animate({
width: "+=60px",
opacity: 0.4,
fontSize: "3em",
borderWidth: "10px"
}, 1500);
Plugins
● JQuery est extensible via des plugins ; permettant de lui ajouter
d'autres méthodes :
● Form : meilleure manipulation des forms.
● UI : Drag&Drop et les widgets.
● $('img[@src$=.png]').ifixpng()
● Une dizaine d'autres plugins .
● jQuery.fn.hideLinks = function() {
return this.find('a[href]').hide().end();
}
● $('p').hideLinks();
Aller plus loin
● http://jquery.com/
● http://docs.jquery.com/
● http://visualjquery.com/ - API reference
● http://simonwillison.net/tags/jquery/

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Introduction Node.js
Introduction Node.jsIntroduction Node.js
Introduction Node.js
 
Introduction to Django
Introduction to DjangoIntroduction to Django
Introduction to Django
 
11. java methods
11. java methods11. java methods
11. java methods
 
Modules in AngularJs
Modules in AngularJsModules in AngularJs
Modules in AngularJs
 
JavaScript - Chapter 4 - Types and Statements
 JavaScript - Chapter 4 - Types and Statements JavaScript - Chapter 4 - Types and Statements
JavaScript - Chapter 4 - Types and Statements
 
Object oriented programming in java
Object oriented programming in javaObject oriented programming in java
Object oriented programming in java
 
Module design pattern i.e. express js
Module design pattern i.e. express jsModule design pattern i.e. express js
Module design pattern i.e. express js
 
JavaScript - Chapter 8 - Objects
 JavaScript - Chapter 8 - Objects JavaScript - Chapter 8 - Objects
JavaScript - Chapter 8 - Objects
 
Introduction to Heroku
Introduction to HerokuIntroduction to Heroku
Introduction to Heroku
 
Php string function
Php string function Php string function
Php string function
 
Spring Batch
Spring BatchSpring Batch
Spring Batch
 
PHP - Introduction to PHP AJAX
PHP -  Introduction to PHP AJAXPHP -  Introduction to PHP AJAX
PHP - Introduction to PHP AJAX
 
An Introduction of Node Package Manager (NPM)
An Introduction of Node Package Manager (NPM)An Introduction of Node Package Manager (NPM)
An Introduction of Node Package Manager (NPM)
 
Chapter 02 php basic syntax
Chapter 02   php basic syntaxChapter 02   php basic syntax
Chapter 02 php basic syntax
 
IP Unit 2.pptx
IP Unit 2.pptxIP Unit 2.pptx
IP Unit 2.pptx
 
It depends: Loving .NET Core dependency injection or not
It depends: Loving .NET Core dependency injection or notIt depends: Loving .NET Core dependency injection or not
It depends: Loving .NET Core dependency injection or not
 
New Framework - ORM
New Framework - ORMNew Framework - ORM
New Framework - ORM
 
AEM hacker - approaching Adobe Experience Manager webapps in bug bounty programs
AEM hacker - approaching Adobe Experience Manager webapps in bug bounty programsAEM hacker - approaching Adobe Experience Manager webapps in bug bounty programs
AEM hacker - approaching Adobe Experience Manager webapps in bug bounty programs
 
PostgreSQL and JDBC: striving for high performance
PostgreSQL and JDBC: striving for high performancePostgreSQL and JDBC: striving for high performance
PostgreSQL and JDBC: striving for high performance
 
Webpack Introduction
Webpack IntroductionWebpack Introduction
Webpack Introduction
 

Destaque

Aperçu de java EE 5
Aperçu de java EE 5Aperçu de java EE 5
Aperçu de java EE 5
Quentin Adam
 
Ccna support v2.5
Ccna support v2.5Ccna support v2.5
Ccna support v2.5
Mbaye Dieye
 

Destaque (20)

Présentation jQuery pour débutant
Présentation jQuery pour débutantPrésentation jQuery pour débutant
Présentation jQuery pour débutant
 
jQuery
jQueryjQuery
jQuery
 
Bootstrap 3
Bootstrap 3Bootstrap 3
Bootstrap 3
 
Javascript 1.0
Javascript 1.0 Javascript 1.0
Javascript 1.0
 
Javascript 2.0
Javascript 2.0 Javascript 2.0
Javascript 2.0
 
Formation python micro club.net
Formation python micro club.netFormation python micro club.net
Formation python micro club.net
 
Sécurisation des Web Services SOAP contre les attaques par injection par la m...
Sécurisation des Web Services SOAP contre les attaques par injection par la m...Sécurisation des Web Services SOAP contre les attaques par injection par la m...
Sécurisation des Web Services SOAP contre les attaques par injection par la m...
 
Owasp webgoat
Owasp webgoatOwasp webgoat
Owasp webgoat
 
workshop initiation ssh
workshop initiation sshworkshop initiation ssh
workshop initiation ssh
 
Sécurité des web services soap
Sécurité des web services soapSécurité des web services soap
Sécurité des web services soap
 
Buffer Overflow exploitation
Buffer Overflow exploitationBuffer Overflow exploitation
Buffer Overflow exploitation
 
jQuery
jQueryjQuery
jQuery
 
Notions de base de JavaScript
Notions de base de JavaScriptNotions de base de JavaScript
Notions de base de JavaScript
 
Formation JavaScript full-stack (JS, jQuery, Node.js...)
Formation JavaScript full-stack (JS, jQuery, Node.js...)Formation JavaScript full-stack (JS, jQuery, Node.js...)
Formation JavaScript full-stack (JS, jQuery, Node.js...)
 
jQuery Essentials
jQuery EssentialsjQuery Essentials
jQuery Essentials
 
Cours JavaScript
Cours JavaScriptCours JavaScript
Cours JavaScript
 
JavaScript
JavaScript JavaScript
JavaScript
 
Aperçu de java EE 5
Aperçu de java EE 5Aperçu de java EE 5
Aperçu de java EE 5
 
Ccna support v2.5
Ccna support v2.5Ccna support v2.5
Ccna support v2.5
 
Introduction a jQuery
Introduction a jQueryIntroduction a jQuery
Introduction a jQuery
 

Semelhante a JQuery

Enib cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2
Horacio Gonzalez
 
1-Introduction JQuery.pptx
1-Introduction JQuery.pptx1-Introduction JQuery.pptx
1-Introduction JQuery.pptx
laabid1
 
Function oop - bonnes pratiques ms tech days
Function   oop - bonnes pratiques ms tech daysFunction   oop - bonnes pratiques ms tech days
Function oop - bonnes pratiques ms tech days
Jean-Pierre Vincent
 
Atelier autour de UWA à ParisWeb 2007
Atelier autour de UWA à ParisWeb 2007Atelier autour de UWA à ParisWeb 2007
Atelier autour de UWA à ParisWeb 2007
Netvibes
 
GWT : under the hood
GWT : under the hoodGWT : under the hood
GWT : under the hood
svuillet
 

Semelhante a JQuery (20)

Apprenez le jQuery
Apprenez le jQueryApprenez le jQuery
Apprenez le jQuery
 
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2
 
Patterns et bonnes pratiques autour de JavaScript
Patterns et bonnes pratiques autour de JavaScriptPatterns et bonnes pratiques autour de JavaScript
Patterns et bonnes pratiques autour de JavaScript
 
1-Introduction JQuery.pptx
1-Introduction JQuery.pptx1-Introduction JQuery.pptx
1-Introduction JQuery.pptx
 
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
 
Javascript et JQuery
Javascript et JQueryJavascript et JQuery
Javascript et JQuery
 
Manualjquery
ManualjqueryManualjquery
Manualjquery
 
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
 
Django by mrjmad
Django by mrjmadDjango by mrjmad
Django by mrjmad
 
Jquery - introduction au langage
Jquery - introduction au langageJquery - introduction au langage
Jquery - introduction au langage
 
Gwt fast overview_v1
Gwt fast overview_v1Gwt fast overview_v1
Gwt fast overview_v1
 
Function oop - bonnes pratiques ms tech days
Function   oop - bonnes pratiques ms tech daysFunction   oop - bonnes pratiques ms tech days
Function oop - bonnes pratiques ms tech days
 
JQuery
JQueryJQuery
JQuery
 
Hello mongo
Hello mongoHello mongo
Hello mongo
 
Introduction à Angularjs
Introduction à AngularjsIntroduction à Angularjs
Introduction à Angularjs
 
Introduction au Jquery
Introduction au JqueryIntroduction au Jquery
Introduction au Jquery
 
Atelier autour de UWA à ParisWeb 2007
Atelier autour de UWA à ParisWeb 2007Atelier autour de UWA à ParisWeb 2007
Atelier autour de UWA à ParisWeb 2007
 
GWT : under the hood
GWT : under the hoodGWT : under the hood
GWT : under the hood
 
jQuery
jQueryjQuery
jQuery
 
Nouveautés JavaScript dans le monde Microsoft
Nouveautés JavaScript dans le monde MicrosoftNouveautés JavaScript dans le monde Microsoft
Nouveautés JavaScript dans le monde Microsoft
 

JQuery

  • 1. UX-DAY JQuery Write less, Do more SMAHI Zakaria <z_smahi@esi.dz>
  • 2. C'est quoi JQuery ? ● Javascript framework ● Interaction entre JavaScript (AJAX inclus) et HTML. ● John Resig Janvier 2006. 120Ko (19ko compressé en format gzip). ● Populaire, Open Source ( MIT & Gnu GPL), bien documenté et extensible. ● Nombreux plugins. ● Mis à jour réguliérement. (version 1.9 et 2.0). ● Normalise les différences entre les navigateurs web. ● Sites: Google, Amazon, Mozilla.org, Facebook, Wordpress, Drupal...etc.
  • 3. Que Faire/Ne pas faire ? ● Faire : ● Gérer les interactions avec l'utilisateur. ● Prétraiter les formulaires. ● Créer des animations et effets. ● Manipuler le DOM. ● Utiliser AJAX simplement. ● Créer des RIA (rich Internet Applications). ● Ne pas Faire : ● Remplacer par un langage coté serveur ( php, asp, jsp). ● Remplacer totalement flash et HTML. ● Remplacer un rôle sécuritaire.
  • 4. Outils de développement ● Editeur de texte (Notepad++, Gedit, Notepad ...etc. ). ● Navigateur web (Mozilla Firefox, Google Chrome ). ● Extension de développement (Firebug sous firefox, Outils de développement sous Chrome ...etc. )
  • 5. $( ) ● Fonction de base de JQuery. ● Alias de la fonction JQuery. ● Permet d'associer le démarrage du script sur l'event ready du document + sélectionner les éléments de la page à manipuler par la suite.
  • 6. $(doument).ready() ● Démarre la fonction anonyme lorsque les éléments de la page sont prêts. ● <script type= « text/javascript » > $(document).ready(function(){ // ici du code ; }) ; </script>
  • 7. Sélécteurs ● Viser les éléments de la page à manipuler. ● La fonction $(). ● Syntaxe des sélécteurs CSS( 1, 2 et 3) et XPath. ● Renvoie un ou plusieurs objets JQuery. var objet = $(« sélécteur ») ; ● var objet = $(« #monId ») ; // Id ● var objet = $(« .maClasse ») ; // Classe ● var objet = $(« div ») ; // Tag
  • 8. Sélécteurs ● <div> <ul> <li> </li> </ul> </div> <p> paragraphe 1 </p> <p> paragraphe 2 </p> <p> paragraphe 3 </p> ● Hiérarchie : ancêtre et descendant $(« div ul ») ; $(« div ul li ») ; ● Hiérarchie : parent et enfant $(« div > ul ») ; ● Hiérarchie : précédent et suivant $(« div + p ») ; ● Hiérarchie : frère et frères $(« div ~ p ») ;
  • 9. Sélécteurs Magiques (Filtres) ● :first, :last, :even, :odd, :eq, :lt, :gt ● :nth-child(), :first-child(), :last- child(), :only-child() ● :hidden,:visible ● :header ● :parent ● :has(élément) ● :contains(« texte ») ● :empty, :not(négation) ● Sur attribut : $(« input [type=submit] ») ; $(« input [type !=submit] ») ; ● Expression réguliéres : ^= ( débute par …). $= ( finit par …). *= (contient la valeur …). ● [attr1][attr2] : contient les attributs... ● Formulaires : $(« #formulaire :checkbox ») ; $(« #formulaire :checkbox:checked») ;
  • 10. Collections JQuery ● $('div.section') retourne une collection JQuery. ● La collection peut être manipulée comme un tableau : $('div.section').length (ou .size) = n° des éléments. $('div.section')[0] : le 1er élément DOM sous div $('div.section')[2] $('div.section').each(function() { console.log(this); }); $('div.section').each(function(i) { console.log("Item " + i + " is ", this); });
  • 11. HTML futzing ● $('span#msg').text('The thing was updated!'); ● $('div#intro').html('<em>Look, HTML</em>');
  • 12. Attribute futzing $('a.nav').attr('href', 'http://flickr.com/'); ● $('a.nav').attr({ 'href': 'http://flickr.com/', 'id': 'flickr' }); ● $('#intro').removeAttr('id');
  • 13. CSS futzing ● $('#intro').addClass('highlighted'); ● $('#intro').removeClass('highlighted'); ● $('#intro').toggleClass('highlighted'); ● $('p').css('font-size', '20px'); ● $('p').css({'font-size': '20px', color: 'red'});
  • 14. Méthodes et Valeurs ● Certaines méthodes font retourner un(des) résultat(s) depuis le 1er élément correspondant. ● var height = $('div#intro').height(); ● var src = $('img.photo').attr('src'); ● var lastP = $('p:last').html() ● var hasFoo = $('p').hasClass('foo'); ● var email = $('input#email').val();
  • 15. Manipulation du DOM ● JQuery fournit plusieurs méthodes pour manipuler le DOM( Document Object Model) ● Manipulation du contenu: selector.html( ) ● Remplacement d'un élément DOM: selector.replaceWith( content ) ● Supprimer un élément : selector.remove( [ expr ]) | selector.empty( ) ● Insertion d'un élément : selector.after( content ) | selector.before( content ).
  • 16. Traverser le DOM ● $('div.section').parent() ● $('div.section').next() ● $('div.section').prev() ● $('div.section').nextAll('div') ● $('h1:first').parents()
  • 17. Gestion des événements ● $('a:first').click(function(ev) { $(this).css({backgroundColor: 'orange'}); return false; // Or ev.preventDefault(); }); ● $('a:first').click();
  • 18. Astuce cool ;) ● $(document).ready(function() { alert('DOM est prêt!'); }); ● $(function() { alert('DOM est prêt!'); });
  • 19. Chainage ● La plupart des méthodes JQuery retournent un autre objet JQuery → Possibilté de chainer les méthodes entre eux : ● $('div.section').hide().addClass('gone'); ● $('#intro').css('color', '#cccccc').find('a').addClass('highlighted').end(). find('em').css('color', 'red').end()
  • 20. AJAX ● JQuery supporte très bien AJAX. ● $('div#intro').load('/some/file.html'); ● $.get(url, params, callback) ● $.post(url, params, callback) ● $.getJSON(url, params, callback) ● $.getScript(url, callback)
  • 21. Animations ● JQuery a quelques effets d'animations : $('h1').hide('slow'); $('h1').slideDown('fast'); $('h1').fadeOut(2000); ● Un chainage : $('h1').fadeOut(1000).slideDown() ● Créer vos propres animation ;) $("#block").animate({ width: "+=60px", opacity: 0.4, fontSize: "3em", borderWidth: "10px" }, 1500);
  • 22. Plugins ● JQuery est extensible via des plugins ; permettant de lui ajouter d'autres méthodes : ● Form : meilleure manipulation des forms. ● UI : Drag&Drop et les widgets. ● $('img[@src$=.png]').ifixpng() ● Une dizaine d'autres plugins . ● jQuery.fn.hideLinks = function() { return this.find('a[href]').hide().end(); } ● $('p').hideLinks();
  • 23. Aller plus loin ● http://jquery.com/ ● http://docs.jquery.com/ ● http://visualjquery.com/ - API reference ● http://simonwillison.net/tags/jquery/