AFFICHER OU CACHER UN COMPOSANT AVEC JAVASCRIPT V1.0

cs_Kimjoa Messages postés 262 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 19 septembre 2014 - 6 mars 2010 à 09:30
jdmcreator Messages postés 647 Date d'inscription samedi 30 décembre 2000 Statut Membre Dernière intervention 20 juillet 2012 - 20 mars 2010 à 15:10
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/51392-afficher-ou-cacher-un-composant-avec-javascript-v1-0

jdmcreator Messages postés 647 Date d'inscription samedi 30 décembre 2000 Statut Membre Dernière intervention 20 juillet 2012 7
20 mars 2010 à 15:10
"garder le développeur de bonne humeur car le développement javascript devient facile"

Ça déepnd de chaque développeur. Je n'ai jamais été capable d'utiliser un framework genre JQuery, Prototype.JS car je n'ai pas l'impression d'avoir le contrôle ^^ Je préfère écrire mes scripts moi-même

Le seul framework que j'ai déjà utiliser est SoundManager2 ---> Script exceptionnel
jdmcreator Messages postés 647 Date d'inscription samedi 30 décembre 2000 Statut Membre Dernière intervention 20 juillet 2012 7
20 mars 2010 à 15:08
Oups... désolé... je n'avais pas vu ton message en haut ;)
cs_Kimjoa Messages postés 262 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 19 septembre 2014
19 mars 2010 à 16:48
"CODE EN DOUBLON qui ne sert à rien selon la communauté"

+1 !

"je garderai dorénavant mes scripts...trop écoeuré de la mentalité sur ce site"

Non mais lol, tu tend le bâton pour te faire battre et viens te plaindre ensuite !!

"je n'avais pas demandé de passer devant un jury, ce script devait juste servir aux newbies"

Je répète ce que j'ai dit, le newbie à besoin de base solid si ils veulent évoluer dans le language, si tu respectes pas la mise en forme avec les css, et leur fournit une fonction seulement pour des div, tu leurs rends pas service.

"POUR INFO, j'utilise JQuery et Prototype...donc pas besoin de me faire un cours dont je connais déjà le contenu"

Lol ba regarde les fonctions du même type dans prototype et jquery, ont en reparlera après !

"Ramener sa science auprès des autres n'a jamais rien amené de bon.."

Voilà ce que ca donne quand on est tros fière pour accepter la critique. On s'en prend aux autres, alors que ceux-ci veulent seulement t'aider.
crazygogo Messages postés 135 Date d'inscription samedi 18 janvier 2003 Statut Membre Dernière intervention 17 avril 2009
19 mars 2010 à 14:18
je sais bien, c'est la suite de mon message juste au dessus !

qu'est-ce que 25Ko de nos jours ? pour assurer la compatibilité tous navigateurs + la légèreté de tous le code qui sera développé sans avoir à ré-écrire des fonctions qui existent déjà + garder le développeur de bonne humeur car le développement javascript devient facile ?

LOL :)
jdmcreator Messages postés 647 Date d'inscription samedi 30 décembre 2000 Statut Membre Dernière intervention 20 juillet 2012 7
19 mars 2010 à 13:41
Là, c'est du JQuery ;) Ça ne fonctionnera jamais si l'on a pas JQuery (25KO)
crazygogo Messages postés 135 Date d'inscription samedi 18 janvier 2003 Statut Membre Dernière intervention 17 avril 2009
19 mars 2010 à 10:22
$('#hideh1').click(function(){
$('div.showhide,h1').hide();
});
$('#showh1').click(function(){
$('div.showhide,h1').show();
});
$('#toggleh1').click(function(){
$('div.showhide,h1').toggle();
});

pourquoi se casser la tête à ré-inventer la roue ????
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
19 mars 2010 à 09:51
Bonjour,

Tu as une notion de communauté qui me laisse un peu rêveur, en effet 3 intervenants, si l'on excepte les inutiles requérant plus de 100ko pour afficher Hello world, sur un potentiel de plusieurs milliers alors...

Concernant ta remarque <! je pensais que la la mentalité s'était améliorée sur ce site !> je te renvoi à ce que je viens d'écrire ci dessus.

Les commentaires restent néanmoins judicieux et pointent sur la difficulté de mettre un script satisfaisant le plus grand nombre.

Il n'empêche aussi que certains scripts sont portables et d'autres résolvent des problèmes ponctuel comme le tien, et les deux cohabitent sur ce site.

Il ne faut pas être pour l'un ou pour l'autre de façon hautaine quoiqu'il arrive les deux sont nécessaires.

Je pense que c'est ta façon d'aborder la chose qui t'as valu le ton de certaines remarques.

Enfin il reste dommageable que tu la supprimes, il y a d'ailleurs un commentaire laconique mais encourageant de la part de djamel28dz qui montre sont utilité.

Maintenant tu es libre, bien évidement, de faire ce que tu souhaites...
...quoiqu'il arrives bonne continuation.

M'enfin qui suis je pour juger ?
;O)
djamel28dz Messages postés 4 Date d'inscription vendredi 26 février 2010 Statut Membre Dernière intervention 8 mars 2010
8 mars 2010 à 10:35
Merci
cs_Kimjoa Messages postés 262 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 19 septembre 2014
7 mars 2010 à 13:44
daccord avec kazma, c'est vue et revue. Moi j'aurais dit Mootools pawa :).

Sinon quand on programme en js et html , on essaye de le faire bien.
On évite d'écrire le css dans une balise. Si un débutant essaye ton script , et si lui à respecter cette règle il fait quoi? Il s'énerve devant son pc , comme toi tu viens de le faire.

De plus, si ce même débutant utilise un display 'inline' pour un span , ou 'inline-block', il fait quoi?

Bref on a bien compris que tu cherchais a faire simple, mais faut aussi chercher a faire fonctionnel non?
crazygogo Messages postés 135 Date d'inscription samedi 18 janvier 2003 Statut Membre Dernière intervention 17 avril 2009
7 mars 2010 à 10:39
crazygogo Messages postés 135 Date d'inscription samedi 18 janvier 2003 Statut Membre Dernière intervention 17 avril 2009
7 mars 2010 à 10:21
Jquery pawa !
@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
6 mars 2010 à 21:00
je sais par pouquoi tu t'emporte c'est sur sa marche bien mais par rapport a ce que je disait ca impose des contraintes et je le repete c'est plus une snipet qu'autre chose?

ce script c'est du banal de chez banal, du vue et revue.
jdmcreator Messages postés 647 Date d'inscription samedi 30 décembre 2000 Statut Membre Dernière intervention 20 juillet 2012 7
6 mars 2010 à 19:59
C'est que dans ton script, si tu caches une balise puis que tu la réouvres, il y aura un saut de ligne après.

Ce bug est réglé beaucoup plus facilement avec leur code ;)
xloadx Messages postés 28 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 10 septembre 2011
6 mars 2010 à 17:10
Et pour info c quoi l'intérêt de rajouter autant de variables pour arriver au même résultat que moi ?

Ah oui ça fait super joli et ramène science...mais bon passer 10 lignes pour faire la même chose que 3...vraiment je ne pige pas !!! J'ai peut-être raté un passage ?

Testé sous IE / FF / Safari / Opera / G-Chrome
xloadx Messages postés 28 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 10 septembre 2011
6 mars 2010 à 17:04
Mdrrr c bien se que je disais, des solutions à 170 lignes mini...bon alors je précise en passant que le CSS doit être inclus dans l'argument de l'objet :

Qu'est ce que j'avais dit ?

en mettant juste cela le script fonctionne très bien !!!!!

ET JE LE REDIS, UNE VERSION SIMPLE ACCESSIBLE MEME AUX NOVICES.
@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
6 mars 2010 à 14:14
autre remarque si le style de l'element au chargement est definit par une feuille de style cela ne fonctionnera pas car style ne pointera pas sur le css mais sur le style de la balise il faut imperativement utiliser getComputedStyle et currentStyle

et comme l'a dit Kimjoa c'est une snippet
cs_Kimjoa Messages postés 262 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 19 septembre 2014
6 mars 2010 à 09:33
bon je viens d eme reveiller :)

var toogleDisplay = function(id, display){
var el = document.getElementById(id),
currentDisplay = getStyle(el, 'display');

if(currentDisplay == 'none'){
el.style.display = display || el.style.__originalDisplay || 'block';
}else{
el.style.__originalDisplay = currentStyle;
el.style.display = 'none';
}

}

toujours pas tester, mais ca devrait le faire !
cs_Kimjoa Messages postés 262 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 19 septembre 2014
6 mars 2010 à 09:30
c'est plus un snippet.

Comme tu le dit display n'a pas nécessairement comme valeur block;
De plus, si le style de ton élément est dans une css, pour récupérer le display , il faut passé par une méthode spéciale et non via la propriété style.

Donc il te faut une méthode cross-browser pour récupérer le style, plus ajouter un argument à ta fonction pour spécifier le display ou sauvegarder l'état initiale du display sauf si sa valeur est à none;

concernant le style en volà une toute prête.

var getStyle = function(/*DOMObject*/element, /*string*/rule){//peux etre definit en globale car très utilise, aucune dépendance...
var camelRule=rule.replace(/\-(\w)/g, function (strMatch, p1){return p1.toUpperCase();}),//supprime les tiré et met en majuscule la lettre suivante
value = element.style[camelRule];
if (!value){
if(document.defaultView && document.defaultView.getComputedStyle){
value = document.defaultView.getComputedStyle(element, "").getPropertyValue(/*fait l inverse de camelRule*/rule.replace(/[A-Z]/g, function(match){return '-'+match.charAt(0).toLowerCase();}));
}else{//specifique ie
value = element.currentStyle[camelRule] ;
}
}
return value == 'auto' ? undefined : value;
};

pour ta fonction voir ca pourrait donner ca :

var toogleDisplay = function(id, display){
var el = document.getElementById(id),
currentDisplay = getStyle(el, 'display');

if(currentStyle == 'none'){
el.style = display || el.style.__originalDisplay || 'block';
}else{
el.style.__originalDisplay = currentStyle;
el.style = 'none';
}

}

brute de fonderie à tester. Mais comme quoi c'est pas si simple !

a++
Rejoignez-nous