DOJO在这里似乎有一些怪癖。我需要在页面加载时隐藏TabContainer,但在用户点击按钮后变为可见。我尝试的第一件事是将style.display ="none"设置为开头,然后在单击事件上设置style.display = "block"。不幸的是,这只部分起作用-页面将呈现一个右侧位置/尺寸不可见的框,但不呈现实际内容。仅当触发其他东西时(例如,转到不同的FF选项卡或暂停/恢复firebug将使框渲染)才会呈现框的内容。
如果style.display属性在页面加载时设置为可见,则一切正常。您可以切换显示属性并正确显示或隐藏tabcontainer。但是,如果在页面加载时将其设置为“none”,它将出现问题。
我尝试了一种解决方法,在HTML中将style.display属性设置为"",然后立即在Javascript中将其设置为“none”,但它仍然失败了-更改发生得太快,它需要在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,而不必让它一开始就处于显示状态?