| Auteur | |
|---|---|
| mlbcreation | # 05 Sep 2010 - 17:50:40 |
| 56 Posts |
Bonjour à tous ! Je ne m'y connais pas trop en JS pur, et pour ce que j'ai à faire une librairie serait inutilement lourde. Voilà mon soucis : J'ai une fonction sur un script JS externe: et page HTML : Etant donnée que j'ai cela sur plusieurs items avec des couleurs différentes, j'aimerais que vous m’éclairiez sur une méthode sur mon JS externe afin d'éviter le JS dans la page HTML. Merci de votre aide. ++ Modifié par mlbcreation (05 Sep 2010 - 19:58) |
| Heyoan | # 05 Sep 2010 - 18:35:19 |
| Modérateur 8101 Posts |
Salut, ce serait plus facile en voyant plus de code : * est-ce que chaque LI dispose d'un id ? * est-ce que chaque classe (par exemple gold) correspond uniquement à une couleur de fond ou pas ? * par curiosité : à quoi correspond #separator ? Sinon : * le return false est inutile. * pour la librairie c'est très discutable : par exemple la version de jQuey minifiée à l'adresse http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js fait effectivement 24ko (ce qui peut être considéré comme "beaucoup") mais comme elle est ciblée par de nombreux sites il y a de grandes chances qu'elle soit déjà dans le cache du visiteur. De toute façon, à moins d'empêcher la mise en cache, ce sera le cas dès la seconde visite de la page. |
| mlbcreation | # 05 Sep 2010 - 18:39:52 |
| 56 Posts |
Chaque li dispose d'un ID, les classes sont gold, blue, red, green, purple et grey. #separator est une div qui change de couleur selon l'item survolé. Et pour jQuery je sais bien mais 24Ko pour un script qui en ferait juste 1Ko sans, je ne vois pas l'utilité de prendre une sorte d'"usine à gaz" pour cela ! |
| Borak | # 05 Sep 2010 - 18:47:55 |
| 100 Posts |
Surtout que les 24 ko sont plutôt proche des 74 ko (si on ne gzipe pas).Par contre avec jQuery, ce serait tellement facile... Modifié par Borak (05 Sep 2010 - 18:48) |
| Heyoan | # 05 Sep 2010 - 19:29:05 |
| Modérateur 8101 Posts |
Borak a écrit :Pas la version minifiée. mlbcreation a écrit :Tu as bien lu mon argument sur la mise en cache ? Sinon un exemple un peu verbeux pour dire que jQuery simplifie quand même bien le code :Le principe est de reprendre l'id du LI et de reprendre son nom comme nom de classe pour #separator. A noter que c'est une mauvaise idée de nommer ses classes en fonction de leur couleur car quand on change d'avis le nom ne veut plus rien dire. |
| Heyoan | # 05 Sep 2010 - 19:37:03 |
| Modérateur 8101 Posts |
PS: juste pour rire |
| mlbcreation | # 05 Sep 2010 - 19:46:35 |
| 56 Posts |
Merci beaucoup pour le code ! Tu penses vraiment que jQuery vaudrait le coup pour cet usage ? |
| Heyoan | # 05 Sep 2010 - 19:55:51 |
| Modérateur 8101 Posts |
mlbcreation a écrit :Ben c'est vrai que dans ton cas ce n'est pas un très bon exemple et je pense aussi que c'est une bonne chose de comprendre le fonctionnement de JavaScript (je ne parle pas de devenir un expert) mais tu avoueras que dès qu'on utilise des addEventListener, ou que c'est un peu compliqué de cibler les éléments ou que l'on utilise Ajax, ou que... ça rend tout de suite le code plus clair non ? Et en plus cross-browser. Encore une fois le coup des 24ko ne me semble plus être un bon argument depuis que jQuery (entre autres) est vraiment très répandu et donc déjà en cache pour peu que l'on cible une version en ligne. Si tu considères que ce sujet est [Résolu] merci de l'indiquer en éditant ton premier post et en modifiant le titre. |
| mlbcreation | # 05 Sep 2010 - 19:58:50 |
| 56 Posts |
En tous cas merci beaucoup |