DOJO wydaje się mieć tutaj pewne dziwactwa. Szczególnie potrzebuję ukryć TabContainer po załadowaniu strony, ale stanie się widoczny po kliknięciu przycisku przez użytkownika. Pierwszą rzeczą, którą próbowałem, było ustawienie style.display = "none", aby rozpocząć, a następnie ustawienie style.display = "block" dla zdarzenia click. Niestety, tylko częściowo działa - strona wyrenderuje niewidzialne pudełko we właściwej lokalizacji/wymiarach, ale nie wyrenderuje rzeczywistej zawartości. Zawartość pudełka jest renderowana tylko wtedy, gdy zostanie wywołana przez coś innego (na przykład przejście do innej zakładki FF lub zawieszenie/wznowienie firebug spowoduje, że pole będzie renderowane).Jak dynamicznie wyświetlać i ukrywać cały element TabContainer za pomocą DOJO?
Jeśli właściwość style.display jest widoczna przy ładowaniu strony, wszystko działa poprawnie. Możesz przełączyć właściwość wyświetlania i pokazuje lub odpowiednio ukrywa tabulator. Ale jeśli jest ustawiony na "none" przy ładowaniu strony, wkręca się.
Próbowałem obejść ustawienie właściwości style.display na "" w kodzie HTML, ale natychmiast ustawiłem ją na "none" w JavaScript, ale nadal się nie udaje - zmiana następuje zbyt wcześnie i musi nastąpić po renderowanie tabPlayera (co może zająć sekundę lub dwie).
Niektóre pozbawione przykładowy kod:
HTML:
<div id="tabContainer" dojoType="dijit.layout.TabContainer" style="width:500px; height:100px;display:none;"
>
</div
>
a następnie Javascript by pokazać kartę na użytkownika kliknij:
function initTabs()
{
var tabContainer = dojo.byId('tabContainer');
tabContainer.style.display = 'block';
}
Jak mogę dynamicznie pokazać/ukryć TabContainer bez uruchamiania go w pokazanym stanie?
Faza 1 to "Użyj jQuery". Faza 3 to zysk. – cletus
Widziałem tę radę kilka razy, ale utknąłem z DOJO. –
Tak, nie byłem poważny. :) To trochę frazes w całej kulturze "używaj jQuery" (chociaż uwielbiam jQuery więc ...). – cletus