Accueil > Forum > > > > Problème avec un array de div et l'attribut className
Problème avec un array de div et l'attribut className
mardi 7 octobre 2008 à 17:20:14 |
Problème avec un array de div et l'attribut className

Noursounet
|
Bonjour à tous,
Je suis en train de développer un objet Multiview tout en javascript et je bute sur un problème qui je pense est lié à IE7. Le principe est simple: il faut créer un div conteneur (exemple: "mv") et des divs (autant qu'il y a d'onglets) avec des id qui pour l'exemple seraient "mv1", "mv2", "mv3" (si il y a 3 onglets). Au passage si j'ai fait ainsi c'est pour permettre à l'utilisateur de la classe de remplir ses divs à sa guise et de les convertir en multiview avec mon code JS. A l'instanciation de la classe on passe l'id du div principal (ainsi que d'autres paramètres tels que les dimensions) et la tartine de javascript fait son boulot. J'ai cependant un petit soucis (que j'ai détourné mais ca fait pas très propre d'ou mon message). Je stocke mes objets div dans un array (ils sont donc passés en référence) et lorsque je veux modifier la class CSS,
this.divs[this.oldTab].className='tab_display_none';
, il ne modifie pas la classe css ou du moins il ne l'applique pas...
Mon array est correctement rempli et mon indice currentTab est bon.
Par contre ca opère bien avec
$(this.divId + this.oldTab).className = 'tab_display_none';
à savoir que j'effectue la même opération (à peu de chose près) avec un array d'élements 'td' (qui stocke les onglets) et que le même traitement fonctionne.
Voila merci d'avance pour vos réponses 
|
|
mardi 7 octobre 2008 à 18:15:06 |
Re : Problème avec un array de div et l'attribut className

PetoleTeam
|
Bonjour, que contient vraiment this.divs[this.oldTab] un ID ou une référence à l'objet... ;O)
|
|
mardi 7 octobre 2008 à 20:26:33 |
Re : Problème avec un array de div et l'attribut className

Noursounet
|
Bonsoir et merci pour ta réponse rapide.
this.divs[this.oldTab - 1] contient bien une référence à mon objet, mais la MAJ de l'attribut 'className' ne s'effectue pas...
Voici la classe JS
var Multiview = Class.create();Multiview.prototype = { initialize: function(divId, width, height, headersSize){ this.divId = divId; this.width = width; this.height = height; this.headersSize = headersSize; this.currentTab = 0; this.totaltabs = 0; this.oldTab = 0; this.divs = new Array(); this.tabs = null; this.container = this.getContainer(); this.fullHTML = '<table cellspacing="0" cellpadding="0" border="0"><tbody><tr>'; }, create: function(){ this.container.style.height = this.height + "px"; this.container.style.width = this.width + "px"; this.divs = this.getControls(); this.tabs = this.buildTabs(); }, getControls: function(){ var i = 1; var divsArray = new Array(); while ($(this.divId + i)) { var div = $(this.divId + i); div.className = "empty_space"; divsArray.push(div); i = i + 1; } return divsArray; }, getContainer: function(){ return ($(this.divId)); }, addTab: function(text,visible){ this.totaltabs += 1; var style = (visible == false ? ' style="display:none;' : ' style="display:block;'); style += ' height:30px;"'; this.fullHTML += '<td width="150" align="center" id="header' + this.totaltabs + '"' + style + '" onclick="mView.changeTab(' + this.totaltabs + ');">' + text + '</td>'; },
buildTabs: function() { var headers = new Array(); this.fullHTML += "</tr></tbody></table>"; this.container.innerHTML = this.fullHTML + this.container.innerHTML; for (var i = 1; i<=this.divs.length; i++) { var td = $('header' + i); td.className="tab_unselected"; headers.push(td); } return headers; }, changeTab: function(newTabId) { this.oldTab = this.currentTab; this.currentTab = newTabId; if (this.oldTab != 0){ this.tabs[this.oldTab - 1].className = 'tab_unselected'; } this.tabs[this.currentTab - 1].className = 'tab_selected'; if (this.oldTab != 0){ this.divs[this.oldTab - 1].className = 'empty_space'; //$(this.divId + (this.oldTab)).className ='empty_space'; } //$(this.divId + (this.currentTab)).className ='content_div'; this.divs[this.currentTab - 1].className = 'content_div'; } };et le code HTML correspondant:
< divclass="ConteneurPrincipal"> <divid="mv"> <divid="mv1"align="left">général</div> <divid="mv2"align="left">type</div> <divid="mv3"align="left">annonce</div> <divid="mv4"align="left">Structure</div> <divid="mv5"align="left">validation</div> </div> </div>
|
|
mercredi 8 octobre 2008 à 05:16:50 |
Re : Problème avec un array de div et l'attribut className

PetoleTeam
|
Bonjour, difficile de faire tourner le code sans le reconstruire complétement, pas fait,... de visu rapide, n'y aurait-il pas un problème d'index ?
this.divs[this.oldTab - 1].className = 'empty_space'; // marche pas ! $(this.divId + (this.oldTab)).className ='empty_space'; // marche ! ...avec une page de démo en ligne peut être... ;O)
|
|
Cette discussion est classée dans : problème, array, div, classname, divs
Répondre à ce message
Sujets en rapport avec ce message
Quelle est la différence entre Frame, IFrame et Div... [ par rem78 ]
Bonjour,J'ai un problème de frame que j'utilise pour mon site et qui provoque dans ma fenêtre popup plein écran l'apparitiond'un barre verticale, hors
PRoblème en javascript, jeu de pendu [ par Chihiro ]
Voilà, j'ai un gros problème dans mon script qui ne marche pas, parce que je suis vraiment nulle en programmation... Est ce que quelqu'un pourrait y j
Problème de placement d'une boite div selon la résolution [ par optimed ]
Bonjour!Je vous explique mon problème:je suis en train de travailler sur un site optimisé pour du 800x600 avec une boîte div (en position absolue) qui
Problème d'affichage d'un div lors d'un clic [ par Ang3lo ]
Bonjour à tous,Dans la cadre d'un menu avec sous menu qui apparaissent si un lien est cliqué, j'ai fais ce code :  
Problème très bizarre avec Div.innerHTML [ par tonic1 ]
Bonjour,j'ai un gros problème, et qui me semble très bizarre.Dans mon code, quand je tappe : nom_de_mon_div.innerHTML="coucou"; Aucun probleme sous IE
Aide sur un DIV qui se centre pas correctement [ par deubeuliou ]
Bonsoir à vous,Voici ma situation:Je fais appel à vos services pour un DIV qui me pose problème depuis maintenant un bail. Tout d'abord, voici mon déb
problème de de div images [ par sagaff ]
J'ai un problème avec une image et un texte, je vous montre ce que j'aimerai faire via cette image:Donc j'ai tout simplement" <img src="">
mettre un div en arriere plan [ par Stephane ]
salutvoila, je cree un div identifié :blablapuis apres je le déplace, sans probleme.le pb c'est que mon site est composé de plusieurs page, mais toute
Problème de cadre autour d'un div [ par flexx ]
Bonjour J'ai créé un div avec une bordure d'un pixel noire et mon cadre apparait de façon bizarre dans le coin inférieur gauche du div sous IE 6. En
Problème de DIV lors de la réduction [ par nico3141 ]
Bonjour, J'essaye d'utiliser des feuilles de style pour mettre en page un site. Quand
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|