DOJO sembra avere qualche stranezza qui. Ho specificamente bisogno di nascondere TabContainer quando la pagina viene caricata, ma poi diventa visibile dopo che l'utente fa clic su un pulsante. La prima cosa che ho provato è impostare style.display = "none" per iniziare, e quindi impostare style.display = "block" sull'evento click. Sfortunatamente, funziona solo parzialmente, la pagina renderà una scatola invisibile nella giusta posizione/dimensione, ma non renderà il contenuto reale. Il contenuto della scatola viene visualizzato solo quando viene attivato da qualcos'altro (ad esempio, andare a una scheda FF diversa o sospendere/riprendere firebug renderà il rendering della casella).Come faccio a mostrare e nascondere dinamicamente un intero TabContainer usando DOJO?
Se la proprietà style.display è impostata per essere visibile al caricamento della pagina, tutto funziona correttamente. È possibile attivare o disattivare la proprietà di visualizzazione e mostra o nasconde correttamente il contenitore di tabulazioni. Ma se è impostato su "nessuno" al caricamento della pagina, si rovina.
Ho provato una soluzione alternativa per impostare la proprietà style.display su "" nell'HTML, ma in seguito l'ho impostata immediatamente su "none" nel Javascript, ma non riesce ancora - la modifica si verifica troppo presto e deve avvenire dopo il tabcontainer esegue il rendering (che può richiedere un secondo o due).
Alcuni codice di esempio messo a nudo:
HTML:
<div id="tabContainer" dojoType="dijit.layout.TabContainer" style="width:500px; height:100px;display:none;"
>
</div
>
e poi il Javascript per visualizzare la scheda su un utente clic:
function initTabs()
{
var tabContainer = dojo.byId('tabContainer');
tabContainer.style.display = 'block';
}
Come posso mostra/nascondi dinamicamente un TabContainer senza averlo avviato nello stato mostrato?
La fase 1 è "Usa jQuery". La fase 3 è il profitto. – cletus
Ho visto quel consiglio alcune volte, ma sono bloccato con DOJO. –
Sì, non ero serio. :) È un po 'una strambata nella cultura "use jQuery" (anche se adoro jQuery quindi ...). – cletus