Je suis aussi partant pour le JS (enfin via librairie Jquery car une fois utilisée on ne peut plus s'en passer :D) !
Un challenge intéressant pourrait être d'adopter précisément comme règle le point de vue contraire en interdisant le recours à jQuery.
Celui-ci est souvent une facilité pour le programmeur, mais pas une mesure d'économie globale ; comme je l'ai écrit ailleurs, cela revient parfois "à utiliser une tronçonneuse pour casser une allumette".
Voir les liens que je donnais ici développant cette réflexion:
il peut y avoir plusieurs ateliers, un en vanilla JS et un avec librairie/framework, mais effectivement, les regles doivent être clairs et connus de tous
(et si c'est vanilla JS, ça peut etre "modern browser only" pour s'épargner de gérer IE8 ou des vieux browsers android :))
- Edité par nicolas.challeil@openclassrooms.com 2 juin 2015 à 10:00:37
N'utilisez JAMAIS alert() pour debugger. Utilisez console.log()
Personnellement, je pense qu'on peut autoriser les deux, c'est à dire from sratch et avec utilisation d'une librairie, je comprends tout à fait ton point de vue philiga, mais pour avoir réaliser quelques stages dans le domaine du web, généralement la plupart utilise jquery sans se poser de questions pratique qui j'en conviens et un peu dommage. Tout ça pour dire, si j'avais pratiquer un peu avant j'aurai été plus efficace. Je trouve ça donc dommage de restreindre l'atelier.
le premier code en jquery peut aussi tenir en 1 ligne de code, compter le ligne de code n'est donc pas pertinent pour juger de la qualité ou pas
même si on compare la version js développée, il y a pas mal a redire
1) elle est beaucoup plus verbeuse, et bien moins "lisible"
2) tu repetes 2 fois un selecteur (#tonDiv) alors qu'on ne le repete pas avec Jquery
3) tu utilise directement .onclick, ce qui implique que tu ne peux accrocher qu'un seul event comme ça sur ton bouton. Il faudrai utilise addEventListener, mais du coup tu perds la compat avec I8 (ce que jQuery conserve avec .click, tout en gardant la possibilité d'accrocher plusieurs event)
4) sur les 5 lignes de js de la version jquery, il y a aussi l'attente a domReady (le $(function) que tu n'as pas toi (qui reste useless si tu mets ton script en bas de page, mais c'est un autre pb :))
5) la tu utilises directement le style display none/block, ce qui peut avoir deux problemes : si jamais ton element etais pas block au départ, tu vas avoir des surprises... Si tu veux utiliser autre chose, genre changer l'opacité, avec style.display, tu vas avoir des problèmes sur IE8 (spa grave, tu me diras, ok :p)
Donc en fait, ouais, tu évites d'utiliser jQuery dans ce cas particulier, et c'est ce qu'il faut probablement faire si tu as juste ces 5 lignes de codes sur ton site. Mais tu tombes trés rapidement dans des cas un peu galere a gérer sans jquery, et qui t'amene a faire bcp de code supplémentaires, et au finale réinventer la roue
Par mis les trucs un peu touchy a faire a la main, on peut parler de :
- délégation d'event
- requete ajax
- divers opération sur les tableaux/objet ($.merge, $.extend)
Pour conclure, et pour parler d'openclassrooms un peu :p, jQuery est utilisé, massivement, dans sa derniere version, qui exclue donc IE8 par exemple. Une fois minimifié et gzipé, en provenance d'un CDN, le fichier fait 30ko, soit le poids d'une image relativement petite. Ca vaut clairement pas le coup de s'en passer (ça vaut pour d'autre librairies équivalente, hein, jsuis pas jquery fan boy non plus)
Le code est plus lisible, par plus de gens (plutôt que d'inventer des solutions qui réinventes des choses...) et la lib s'occupe de lisser les petites diff entre les browsers
@stefde3
les deux syntax sont équivalentes (enfin, pour la deuxiement, c'est 'click' entre guillement, pas directement comme ça, et elle permet d'avoir plus d'options si tu veux)
- Edité par nicolas.challeil@openclassrooms.com 2 juin 2015 à 10:40:25
N'utilisez JAMAIS alert() pour debugger. Utilisez console.log()
Merci pour ces précisions ; on est d'accord: ce que j'en dis est valable pour les sites simples personnels qui n'ont souvent pas besoin de sortir la grosse artillerie (même si elle n'est pas si grosse que ça: 30ko, ok...) et ne souffriront guère de ne pas vérifier le document.ready à chaque clic sur un bouton.
"La Vérité doit être dite, le monde dût-il en voler en éclats" (J. G. Fichte)
Si je puis me permettre, le plus propre serait d'ajouter et d'enlever une classe plutôt que modifier style d'autant que comme ça on peut utiliser un moyen plus complexe et plus pertinent pour cacher, comme une hauteur à 0 avec overflow: hidden etc. display: none s'pas cool pour les lecteurs d'écran. Et il serait bon aussi de modifier l'attribut aria-hidden. Mais bon, c'est qu'un exemple, je sais, je pinaille
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Personnellement aujourd'hui j'ai totalement délaissé le JS "traditionnel" barbant à écrire (surtout pour sélectionner des éléments) et devient vite moins lisible.
Le Jquery c'est beaucoup plus simple, ergonomique et compréhensible.
Quand on reprend un code écrit il y a plusieurs mois, on se le réapproprie hyper rapidement avec une structure basée sur Jquery.
Histoire de jouer sur les mots, une librairie serait encore plus juste, dixit jquery.com : "jQuery is a fast, small, and feature-rich JavaScript library"
Cocopop > "le jQuery" ça n'existe pas. C'est pas un langage. Dis "la syntaxe jQuery", s'il te plaît.
@Lamecarlate: Là oui, tu pinailles !
Et sinon, est-ce vraiment "plus propre d'ajouter et d'enlever une classe plutôt que modifier style" ?
Pour des choses complexes ok, mais pour afficher/masquer une pop-up, par exemple, display:none; me semble très bien non ?
@Quentin: non, malheureusement, pas de :clic en CSS ; il y a des ruses avec checked, mais c'est un peu lourd (mais utile quand même). Il y a en fait 2 façons de simuler le clic en CSS ; avant que tu ne le demandes, voici un double exemple :
Pas de véritable :clic comme il y a un :hover en CSS, oui Frogweb, mais j'ai complété ma réponse avec un exemple qui illustre les deux façons de le simuler: target et checked
Pas de véritable :clic comme il y a un :hover en CSS, oui Frogweb, mais j'ai complété ma réponse avec un exemple qui illustre les deux façons de le simuler: target et checked
Pour la peine un exemple au clic et tout en CSS d'une "modalbox" fait avec mes petits doigts Je le mets parce qu'un peu mieux styliser ça pouvait être dans le sujet de l'atelier : créer votre galerie.
L'image se referme soit en cliquant sur le lien fermer, soit en cliquant en dehors.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
N'utilisez JAMAIS alert() pour debugger. Utilisez console.log()
http://borntocode.fr/ - Twitter
Le CSS ça peut craindre -->Conférence CSS3.CREATE
N'utilisez JAMAIS alert() pour debugger. Utilisez console.log()
Le CSS ça peut craindre -->Conférence CSS3.CREATE
N'utilisez JAMAIS alert() pour debugger. Utilisez console.log()
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Pas d'aide concernant le code par MP, le forum est là pour ça :)
LinkedIn
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Pas d'aide concernant le code par MP, le forum est là pour ça :)