Apprenez le jQuery

23
UX-DAY JQuery Write less, Do more SMAHI Zakaria <[email protected]>

description

jQuery est une bibliothèque JavaScript libre qui porte sur l&#x27;interaction entre JavaScript (comprenant Ajax) et HTML, et a pour but de simplifier des commandes communes de JavaScript. Atelier présenté par SMAHI Zakaria. UX Day, Semaine du Web.

Transcript of Apprenez le jQuery

Page 1: Apprenez le jQuery

UX-DAY

JQueryWrite less, Do more

SMAHI Zakaria <[email protected]>

Page 2: Apprenez le jQuery

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.

Page 3: Apprenez le jQuery

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.

Page 4: Apprenez le jQuery

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. )

Page 5: Apprenez le jQuery

$( )

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.

Page 6: Apprenez le jQuery

$(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>

Page 7: Apprenez le jQuery

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

Page 8: Apprenez le jQuery

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 ») ; 

Page 9: Apprenez le jQuery

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») ;

Page 10: Apprenez le jQuery

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);

});

Page 11: Apprenez le jQuery

HTML futzing

$('span#msg').text('The thing was updated!');

$('div#intro').html('<em>Look, HTML</em>');

Page 12: Apprenez le jQuery

Attribute futzing

$('a.nav').attr('href', 'http://flickr.com/'); $('a.nav').attr({

'href': 'http://flickr.com/','id': 'flickr'

}); $('#intro').removeAttr('id');

Page 13: Apprenez le jQuery

CSS futzing

$('#intro').addClass('highlighted'); $('#intro').removeClass('highlighted'); $('#intro').toggleClass('highlighted'); $('p').css('font-size', '20px'); $('p').css({'font-size': '20px', color: 'red'});

Page 14: Apprenez le jQuery

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();

Page 15: Apprenez le jQuery

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 ).

Page 16: Apprenez le jQuery

Traverser le DOM

$('div.section').parent() $('div.section').next() $('div.section').prev() $('div.section').nextAll('div') $('h1:first').parents()

Page 17: Apprenez le jQuery

Gestion des événements

$('a:first').click(function(ev) {$(this).css({backgroundColor: 'orange'});return false; // Or ev.preventDefault();

}); $('a:first').click();

Page 18: Apprenez le jQuery

Astuce cool ;)

$(document).ready(function() {alert('DOM est prêt!');});

$(function() {alert('DOM est prêt!');});

Page 19: Apprenez le jQuery

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()

Page 20: Apprenez le jQuery

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)

Page 21: Apprenez le jQuery

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);

Page 22: Apprenez le jQuery

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();

Page 23: Apprenez le jQuery

Aller plus loin

http://jquery.com/ http://docs.jquery.com/ http://visualjquery.com/ - API reference http://simonwillison.net/tags/jquery/ http://www.unheap.com/