DOJO 似乎有一些怪癖。我特别需要在页面加载时隐藏 TabContainer,但在用户单击按钮后变得可见。我尝试的第一件事是设置 style.display = "none" 来启动,然后在单击事件上设置 style.display = "block" 。不幸的是,这仅部分有效 - 页面将在正确的位置/维度呈现一个不可见的框,但不呈现实际内容。盒子的内容只有在被其他东西触发时才会渲染(例如,转到不同的 FF 选项卡或暂停/恢复 firebug 将使盒子渲染)。
如果 style.display 属性设置为在页面加载时可见,则一切正常。您可以切换显示属性,它可以正确显示或隐藏选项卡容器。但如果在页面加载时将其设置为“无”,则会出现问题。
我尝试了一种解决方法,在 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 而不使其以显示状态启动?
对此有解决方案。如果你想显示 TabContainer 调用:
dijit.byId("tabContainer").domNode.style.display = 'block';
dijit.byId("tabContainer").resize();
如果您想隐藏 TabContainer,请使用“none”。
这对我有用,但这是事实,这并不明显:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)