У DOJO, кажется, есть некоторые причуды здесь. Мне особенно нужно, чтобы TabContainer скрывался при загрузке страницы, но затем становился видимым после того, как пользователь нажимает кнопку. Первое, что я попробовал, это установить style.display = "none" для запуска, а затем установить style.display = "block" в событии click. К сожалению, это работает только частично - страница будет отображать невидимое поле в нужном месте / размерах, но не отображать фактическое содержимое. Содержимое блока отображается только при его запуске чем-то другим (например, переход на другую вкладку FF или приостановка / возобновление firebug приведут к отображению блока).
Если свойство style.display установлено на отображение при загрузке страницы, все работает нормально. Вы можете переключать свойство display, и оно правильно отображает или скрывает tabcontainer. Но если при загрузке страницы установлено значение «нет», оно облажается.
Я попробовал обходной путь установки свойства style.display в HTML в «», но затем сразу установил его в «none» в Javascript, но все равно не получилось - изменение происходит слишком рано, и оно должно произойти после рендеринг tabcontainer (который может занять секунду или две).
Некоторые образцы кода:
HTML:
<div id="tabContainer" dojoType="dijit.layout.TabContainer" style="width:500px;
height:100px;display:none;"
>
</div
>
, а затем Javascript для отображения вкладки при нажатии пользователем:
function initTabs()
{
var tabContainer = dojo.byId('tabContainer');
tabContainer.style.display = 'block';
}
Как я могу динамически отображать / скрывать TabContainer без его запуска в показанном состоянии?