IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Style de programmation en JS


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Style de programmation en JS
    Salut,

    Je ne suis pas un expert en JS, mais je suis de plus en plus amené à utiliser des scripts ou en faire moi même, et j'ai une question...

    Suis-je le seul à être horripilé par ce style de programmation ?
    L'extrait vient de ce script: http://www.howtocreate.co.uk/jslibs/listCollapse.js
    Je dois le modifier et franchement, j'ai des boutons rien qu'en le regardant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    function compactMenu(oID,oAutoCol,oPlMn,oMinimalLink) {
    	if( !document.getElementsByTagName || !document.childNodes || !document.createElement ) { return; }
    	var baseElement = document.getElementById( oID ); if( !baseElement ) { return; }
    	compactChildren( baseElement, 0, oID, oAutoCol, oPlMn, baseElement.tagName.toUpperCase(), oMinimalLink && oPlMn );
    }
    function compactChildren( oOb, oLev, oBsID, oCol, oPM, oT, oML ) {
    	if( !oLev ) { oBsID = escape(oBsID); if( oCol ) { openLists[oBsID] = []; } }
    	for( var x = 0, y = oOb.childNodes; x < y.length; x++ ) { if( y[x].tagName ) {
    		//for each immediate LI child
    		var theNextUL = y[x].getElementsByTagName( oT )[0];
    		if( theNextUL ) {
    			//collapse the first UL/OL child
    			theNextUL.style.display = 'none';
    			//create a link for expanding/collapsing
    			var newLink = document.createElement('A');
    			newLink.setAttribute( 'href', '#' );
    			newLink.onclick = new Function( 'clickSmack(this,' + oLev + ',\'' + oBsID + '\',' + oCol + ',\'' + escape(oT) + '\');return false;' );
    			//wrap everything upto the child U/OL in the link
    			if( oML ) { var theHTML = ''; } else {
    				var theT = y[x].innerHTML.toUpperCase().indexOf('<'+oT);
    				var theA = y[x].innerHTML.toUpperCase().indexOf('<A');
    				var theHTML = y[x].innerHTML.substr(0, ( theA + 1 && theA < theT ) ? theA : theT );
    				while( !y[x].childNodes[0].tagName || ( y[x].childNodes[0].tagName.toUpperCase() != oT && y[x].childNodes[0].tagName.toUpperCase() != 'A' ) ) {
    					y[x].removeChild( y[x].childNodes[0] ); }
    			}
    			y[x].insertBefore(newLink,y[x].childNodes[0]);
    			y[x].childNodes[0].innerHTML = oPM + theHTML.replace(/^\s*|\s*$/g,'');
    			theNextUL.MWJuniqueID = oIcount++;
    			compactChildren( theNextUL, oLev + 1, oBsID, oCol, oPM, oT, oML );
    } } } }
    function clickSmack( oThisOb, oLevel, oBsID, oCol, oT ) {
    	if( oThisOb.blur ) { oThisOb.blur(); }
    	oThisOb = oThisOb.parentNode.getElementsByTagName( unescape(oT) )[0];
    	if( oCol ) {
    		for( var x = openLists[oBsID].length - 1; x >= oLevel; x-=1 ) { if( openLists[oBsID][x] ) {
    			openLists[oBsID][x].style.display = 'none'; if( oLevel != x ) { openLists[oBsID][x] = null; }
    		} }
    		if( oThisOb == openLists[oBsID][oLevel] ) { openLists[oBsID][oLevel] = null; }
    		else { oThisOb.style.display = 'block'; openLists[oBsID][oLevel] = oThisOb; }
    	} else { oThisOb.style.display = ( oThisOb.style.display == 'block' ) ? 'none' : 'block'; }
    }
    Qu'en pensez-vous ?

  2. #2
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    J'ai connu pire, mais en effet, on ne peux pas dire que cela soit de toute clareté

  3. #3
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 208
    Points : 218
    Points
    218
    Par défaut
    Ca manque de commentaires. Pour ça qu'on capte rien....

  4. #4
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 519
    Points : 1 105
    Points
    1 105
    Par défaut
    Et de plus, il manque quelques sauts de ligne

Discussions similaires

  1. style de programmation plus "naturel" ?
    Par gorgonite dans le forum Langages fonctionnels
    Réponses: 38
    Dernier message: 13/07/2008, 04h00
  2. [GridView]Créer un gridview et ses Styles par programme
    Par fragmonster dans le forum ASP.NET
    Réponses: 1
    Dernier message: 02/04/2007, 15h18
  3. Donnez le style xp à un programme
    Par bertrand_declerck dans le forum Composants VCL
    Réponses: 3
    Dernier message: 08/07/2005, 11h46
  4. Etude des "styles" de programmation
    Par RiRi51 dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 12/03/2003, 19h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo