Comment puis-je dynamiquement afficher et masquer un ensemble de TabContainer à l'aide de DOJO?

DOJO semble avoir quelques bizarreries ici. J'ai précisément besoin d'avoir le TabContainer cachés lorsque le chargement de la page, mais deviennent alors visibles une fois que l'utilisateur clique sur un bouton. La première chose que j'ai essayé est le réglage de style.display = "none" pour commencer, puis en définissant le style.display = "block" sur l'événement click. Malheureusement, cela ne fonctionne partiellement - la page se rendre invisible dans la boîte de droite emplacement/dimensions, mais de ne pas rendre le contenu réel. La zone de contenu qui ne se rendait lorsqu'il est déclenché par quelque chose d'autre (par exemple, passer à un autre onglet FF ou suspendre/reprendre firebug rendra la zone de rendu).

Si le style.propriété d'affichage est visible au chargement de la page, tout fonctionne bien. Vous pouvez activer /désactiver l'affichage de la propriété et il affiche ou masque la tabcontainer correctement. Mais s'il est réglé sur "none" au chargement de la page, il vis.

J'ai essayé une solution de contournement de définir le style.propriété d'affichage à "" dans le code HTML, mais ensuite immédiatement le réglage à "none" dans le Javascript, mais il ne parvient toujours pas - le changement se produit trop tôt, et il doit se produire après la tabcontainer rendus (ce qui peut prendre une seconde ou deux).

Certains dépouillé de l'échantillon de code:

HTML:

<div id="tabContainer" dojoType="dijit.layout.TabContainer" style="width:500px;
height:100px;display:none;"
>

</div>

et puis le Javascript pour afficher l'onglet sur un utilisateur, cliquez sur:

function initTabs()  
{  
var tabContainer = dojo.byId('tabContainer');  
tabContainer.style.display = 'block';  
}  

Comment puis-je dynamiquement afficher/masquer un TabContainer sans avoir commencer dans la montre de l'état?

La Phase 1 est "Utiliser jQuery". La Phase 3 est le Profit.
Vu que des conseils un peu de temps, mais je suis coincé avec DOJO.
Ouais, je n'étais pas sérieux. 🙂 C'est un peu un empannage à l'ensemble "utiliser jQuery" culture (bien que j'aime jQuery...).

OriginalL'auteur | 2009-08-11