Module M2105 Programmation jquery. IUT de Béziers, dépt. R&T

Documents pareils
TP JAVASCRIPT OMI4 TP5 SRC

Optimiser les performances d un site web. Nicolas Chevallier Camille Roux

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

HTML, CSS, JS et CGI. Elanore Elessar Dimar

SYSTÈMES D INFORMATIONS

Présentation du Framework BootstrapTwitter

.. CSS. Damien Nouvel. Damien Nouvel (Inalco) CSS 1 / 15

{less} Guide de démarrage

Programmation Internet Cours 4

Séance d ED n 5 : HTML et JavaScript

RAPPORT AUDIT SEO. Élaboré à l'attention de : Monsieur Greber Élaboré par : Cédric Peinado

Démonstration de la mise en cache via HTML 5 sur iphone

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Formation HTML / CSS. ar dionoea

Attaques de type. Brandon Petty

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)

Travaux dirigés n 10

Programmation Web. Madalina Croitoru IUT Montpellier

DOM - Document Object Model

Intégrateur Web HTML5 CSS3

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Document Object Model (DOM)

BES WEBDEVELOPER ACTIVITÉ RÔLE

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

Devenez un véritable développeur web en 3 mois!

Ajax, RIA et HTML Prise en charge d Ajax

STID 2ème année : TP Web/PHP

Hébergement de site web Damien Nouvel

Dans l'article précédent, vous avez appris

Formation : WEbMaster

Tutoriel : Feuille de style externe

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Guide de réalisation d une campagne marketing

CREATION d UN SITE WEB (INTRODUCTION)

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068

Panel des technologies Web

Initiation à html et à la création d'un site web

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

Stockage du fichier dans une table mysql:

MANUEL WORDPRESS. Objectif: Refonte d un site web sous Wordpress I PRE-REQUIS: 1 / Créer un backup (sauvegarde) du site:

Les services usuels de l Internet

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données

Proxies,, Caches & CDNs

Les outils de création de sites web

Formulaire pour envoyer un mail

Joomla! Création et administration d'un site web - Version numérique

RESPONSIVE WEB DESIGN

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Zen, SASS, responsive design

Spétechs Mobile. D e r n i è r e m i s e à j o u r : a o û t 2014

Architectures web/bases de données

LES GRANDES ETAPES DE CREATION D UN WEB DESIGN

Petite définition : Présentation :

ASP.NET MVC 4 Développement d'applications Web en C# - Concepts et bonnes pratiques

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

Projet en nouvelles technologies de l information et de la communication

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

Configuration du serveur FTP sécurisé (Microsoft)

INTRODUCTION AU CMS MODX

Mise en place d un serveur Proxy sous Ubuntu / Debian

Intégration du Web 2.0 dans les solutions IBM

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

Google Tag Manager v2 v1 dispo sur GTM pour les nuls dispo sur

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

Configuration de Microsoft Internet Explorer pour l'installation des fichiers.cab AppliDis

Création de formulaires interactifs

Serveur d Applications Web : WebObjects

2 LES BASES DU HTML 19 Qu est-ce que le HTML? 20 De quand date le HTML? 20 Écrire son propre code HTML 22

TD HTML AVEC CORRECTION

Initiation aux techniques du Web. Cours L2 sciences cognitives séance 2 Charif HAYDAR: alchiekc@loria.fr

PLUGINS Guide du Développeur STEPHANE FERRARI. P l u X m l 5.4

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

Les solutions de paiement CyberMUT (Crédit Mutuel) et CIC. Qui contacter pour commencer la mise en place d une configuration de test?

FORMATION / CREATION DE SITE WEB / 4 JOURNEES Sessions Octobre 2006

Diffuser un contenu sur Internet : notions de base... 13

Bases de données et Interfaçage Web

Spétechs Mobile. Octobre 2013

Le stockage local de données en HTML5

1 ère Université WEB. Courbevoie Samedi 21 octobre Votre site interactif sur internet.

Comment développer et intégrer un module à PhpMyLab?

Bonnes pratiques de développement JavaScript

Introduction à Expression Web 2

EXTENSION de Microsoft Dynamics CRM Réf FR 80452

AWS avancé. Surveiller votre utilisation d EC2

Normes techniques 2011

WEB-ANALYTICS & GOOGLE ANALYTICS

Transcription:

Module M2105 Programmation jquery IUT de Béziers, dépt. R&T 2015-2017 http://www.borelly.net/ Christophe.BORELLY@iutbeziers.fr

Généralités jquery est une bibliothèque JavaScript libre et multi-plateforme Facilite l'écriture de scripts côté client Créée par John RESIG (janvier 2006) Taille environ 100 Ko (minifyed) 20/04/17 M2105 - cb@iutbeziers.fr 2/30

Utilisation <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <script src="jquery-x.yy.z.min.js"></script> <link rel="stylesheet" href="style.css"/> </head> <body>... <script> $(document).ready(function(){ // Le code jquery se place ici! }); </script> </body> </html> 20/04/17 M2105 - cb@iutbeziers.fr 3/30

Syntaxe $(selecteur) ou jquery(selecteur) permet d'obtenir des objets jquery auxquels on peut appliquer des méthodes cumulables (toutes les méthodes renvoient un objet jquery) $(this) est l'objet «courant» (souvent utilisé dans des fonctions) $(document) représente le document $(window) représente la fenêtre du navigateur 20/04/17 M2105 - cb@iutbeziers.fr 4/30

Sélecteurs (1) Si le sélecteur est une chaîne, permet de récupérer les éléments comme en CSS $("div") correspond à tous les tags div du document $("#msg") correspond au tag dont l'attribut id="msg" du document $(".val") correspond à tous les tags dont l'attribut class="val" 20/04/17 M2105 - cb@iutbeziers.fr 5/30

Sélecteurs (2) $("*") tous les éléments $("a[href]") tous les éléments a possédant un attribut href $("[size=20]") tous les éléments possédant un attribut size="20" $("input:radio") tous les éléments input de type="radio" $("p:first") Le premier paragraphe $("tr:even") Toutes les lignes paires $("ul li:first-child") Le premier enfant li de toutes les listes ul $("p > span") Tous les span à l intérieur d'un paragraphe p $("p + div") Tous les div suivants un paragraphe p 20/04/17 M2105 - cb@iutbeziers.fr 6/30

Objet(s) sélectionné(s) La propriété length permet de connaître le nombre d'éléments sélectionnés par jquery (s'il y en a plusieurs) On peut aussi utiliser la méthode size() Pour obtenir un DOMNode (pas un objet jquery), on peut soit utiliser la méthode get() soit se servir des [] : var obj=$("p"); console.debug("nombre de paragraphes : " +obj.length); // $(obj).size() var p1=$(obj).get(0); // Premier paragraphe var p2=obj[2]; // 3ème paragraphe... 20/04/17 M2105 - cb@iutbeziers.fr 7/30

Attributs attr() utilisée avec un seul argument permet d'obtenir la valeur de l'attribut du premier élément sélectionné var src1=$("#img1").attr("src"); Avec 2 arguments, cela ajoute/modifie l'attribut $("#img1").attr("title","titre de l'image"); removeattr() permet de supprimer un attribut $("#img1").removeattr("title"); 20/04/17 M2105 - cb@iutbeziers.fr 8/30

Les classes addclass() ajoute une valeur à l'attribut class removeclass() enlève la valeur à l'attribut class toggleclass() ajoute/supprime une valeur à l'attribut class hasclass() détermine si la valeur est présente dans l'attribut class $("div").toggleclass("select"); 20/04/17 M2105 - cb@iutbeziers.fr 9/30

Style CSS css() permet de récupérer (ou modifier) les attributs CSS. var color=$("#div1").css("background-color"); $("p").css({"font-familly":"sans-serif", "color":"red", "background-color":color}); 20/04/17 M2105 - cb@iutbeziers.fr 10/30

Valeurs text() renvoi le texte concaténé de tous les éléments et descendants (ou change le texte) html() renvoi tout le contenu HTML (ou change le contenu) val() renvoi la valeur de l'attribut value (ou modifie la valeur) var user=$("#user").val(); $("#btn").text("déconnecter "+user); 20/04/17 M2105 - cb@iutbeziers.fr 11/30

Propriétés Utile pour les éléments sélectionnables (checkbox, radio, select, ) Avant jquery 1.6, possible différence entre attr() et prop(). if ($("#chk1").prop("checked")) Autre écriture avec is() : if ($("#chk1").is(":checked")) Effacement avec removeprop() 20/04/17 M2105 - cb@iutbeziers.fr 12/30

Tailles width() et height() renvoient (ou modifient) la largeur ou la hauteur de l'élément innerwidth() et innerheight() intègrent le padding mais pas border outerwidth() et outerheight() intègrent le padding et border (margin en option) 20/04/17 M2105 - cb@iutbeziers.fr 13/30

Position offset() renvoie (ou modifie) la position dans le document Le résultat (ou le paramètre) est un objet avec les propriétés left (valeur x) et top (valeur y) var pos=$("#div").offset(); $("#div").offset({left:50,top:80}); position() renvoie (ou modifie) la position relativement au parent 20/04/17 M2105 - cb@iutbeziers.fr 14/30

Modifications Opération sur les éléments sélectionnés : after(), before(), append(), prepend() replacewith(), wrap(), wrapall(), wrapinner() clone() copie l'élément (en option, copie aussi les données et événements jquery) remove(), detach() (garde les associations jquery en vue d'une réinsertion) empty() vide le contenu $("#msg").append("hello<br/>"); 20/04/17 M2105 - cb@iutbeziers.fr 15/30

Opérations inverses Opération sur les éléments spécifiés en paramètre : insertafter(), insertbefore(), appendto(), prependto() replaceall() $("<br/>").appendto("#msg"); $("<img/>").text("src","pdf.jpg").insertafter("p"); $("<h3/>").replaceall("li"); 20/04/17 M2105 - cb@iutbeziers.fr 16/30

Événements On peut définir les actions réalisées pour un événement particulier (Voir aussi on()) : Souris : click(), dblclick(), mouseenter(), mouseleave(),... Clavier : keypress(), keydown(), keyup() Formulaires : submit(), change(), focus(), blur(), Fenêtre : load(), unload(), resize(), scroll(),... 20/04/17 M2105 - cb@iutbeziers.fr 17/30

Exemples $("#target").click(cbclick); $("#target2").click(function() { console.log("click sur "+$(this).text()); }); $("#target3").click(function(){ cbclick3($(this)); });... function cbclick() { console.log("click!"); } function cbclick3(obj) { console.log("click "+$(obj).text()); } 20/04/17 M2105 - cb@iutbeziers.fr 18/30

Objet event Permet d'obtenir la position de la souris lors de l'événement : $(window).click(function(event) { console.log("pos. : "+ event.pagex+","+event.pagey); }); D'autres propriétés sont accessibles suivant le contexte : altkey, bubbles, button, cancelable, charcode, clientx, clienty, ctrlkey, currenttarget, data, detail, eventphase, metakey, offsetx, offsety, originaltarget, pagex, pagey, relatedtarget, screenx, screeny, shiftkey, target, view, which,... 20/04/17 M2105 - cb@iutbeziers.fr 19/30

filtrage filter(), has(), eq(), not(), slice() permettent de réduire le nombre d'éléments sélectionnés : var ligne1sur2=$("tr").filter(":even"); On peut sélectionner en fonction de l'indice quand la fonction renvoi «vrai» : var ligne1sur3=$("tr").filter( function(index) {return index%3===0;}); 20/04/17 M2105 - cb@iutbeziers.fr 20/30

Recherche find() permet de rechercher dans les descendants first(), last(), next(), prev() renvoi le premier, le dernier, le suivant ou le précédent élément parent(), parents(), children(), siblings() var objs=$("div").find("span.code").next().children(); 20/04/17 M2105 - cb@iutbeziers.fr 21/30

Itérations each() permet d'appliquer une fonction à chaque élément sélectionné : $("div").each(function(){ console.log("id : "+$(this).attr("id")); }); Possibilité d'utiliser 2 arguments (this==element) : $("div").each(function(index,element){... }); 20/04/17 M2105 - cb@iutbeziers.fr 22/30

Animations hide(), show() et toggle() cache ou affiche les éléments sélectionnés slideup(), slidedown(), slidetoggle() idem avec un effet de glissement fadein(), fadeout(), fadeto(), fadetoggle() idem avec un effet de transparence animate() permet de modifier les propriétés CSS (possibilité de +=, -=, etc) 20/04/17 M2105 - cb@iutbeziers.fr 23/30

AJAX Asynchronous JavaScript And XML Requête HTTP Asynchrone permettant d'envoyer ou recevoir des données pour «dynamiser» le document Utilise l'objet XMLHttpRequest Créé en 1998 par Microsoft comme un composant ActiveX et ajouté au JavaScript des navigateurs (ECMAScript - European Computer Manufacturers Association) à partir de 2002 20/04/17 M2105 - cb@iutbeziers.fr 24/30

AJAX et JSON Maintenant, on utilise plutôt le format JSON (JavaScript Object Notation) pour recevoir des données à la place de XML. Un objet JavaScript est défini avec des {} et contient des propriétés et des valeurs : var obj={prenom:"john",nom:"doe"}; obj.age=42; obj.infos=[5.2,10,"10h45"]; //Tableau 20/04/17 M2105 - cb@iutbeziers.fr 25/30

AJAX en JS var request=new XMLHttpRequest(); request.onreadystatechange=function() { console.log("ajax("+request.readystate +","+request.status+")..."); if (request.readystate==4 && request.status==200) { var type=request.getresponseheader("content-type"); console.log("content-type ["+type+"]"); if (type.match(/application\/json/)) { var jsonobj=json.parse(request.responsetext);... } } } request.open("get","http://example.com/ajax.php"); request.send(); 20/04/17 M2105 - cb@iutbeziers.fr 26/30

AJAX avec jquery var jsonquery={"lang":"fr"}; $.ajax({ url : "http://example.com/ajax.php", data : jsonquery, method : "GET", datatype : "json" }).done(function(jsonobj) { console.log("ajax OK...");... }).fail(function() {... }); 20/04/17 M2105 - cb@iutbeziers.fr 27/30

JSON en PHP <?php header('access-control-allow-origin: *'); header('content-type: application/json; charset=utf-8'); $data=array('i1'=>1,'i2'=>2, 'i3'=>array('i4'=>4, 'i5'=>array('i6'=>6) )); echo json_encode($data); exit(0);?> 20/04/17 M2105 - cb@iutbeziers.fr 28/30

Cross-Origin Resource Sharing Permet d'ajouter l'entête CORS pour l'url fournie dans le paramètre q : <?php header('access-control-allow-origin: *'); header('content-type: application/json; charset=utf-8'); if (array_key_exists('q',$_get)) { $content=file_get_contents($_get['q']); if ($content!=false) echo $content; } exit(0);?> 20/04/17 M2105 - cb@iutbeziers.fr 29/30

Références https://jquery.com/ http://api.jquery.com/ http://www.w3schools.com/jquery/ http://www.w3schools.com/jquery/trysel.asp 20/04/17 M2105 - cb@iutbeziers.fr 30/30