首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用DOJO动态显示和隐藏整个TabContainer?

如何使用DOJO动态显示和隐藏整个TabContainer?
EN

Stack Overflow用户
提问于 2009-08-11 15:33:32
回答 9查看 50.1K关注 0票数 8

DOJO在这方面似乎有一些怪癖。我特别需要在页面加载时隐藏TabContainer,但在用户单击按钮后变为可见。我尝试的第一件事是将style.display = "none“设置为启动,然后在单击事件上设置style.display = "block”。不幸的是,这只是部分工作-页面会在正确的位置/尺寸呈现一个不可见的框,但不会呈现实际的内容。盒子的内容只有在被其他东西触发时才会被渲染(例如,转到不同的FF标签或挂起/恢复firebug将使盒子渲染)。

如果将style.display属性设置为在页面加载时可见,则一切正常。您可以切换display属性,它会正确地显示或隐藏选项卡容器。但是如果在页面加载时设置为"none“,就会搞砸。

我尝试了一种变通方法,在HTML中将style.display属性设置为"“,然后在Javascript中立即将其设置为"none”,但仍然失败-更改发生得太快,需要在take容器呈现之后发生(这可能需要一到两秒钟)。

一些经过剥离的示例代码:

HTML:

<div id="tabContainer" dojoType="dijit.layout.TabContainer" style="width:500px; height:100px;display:none;">

</div>

然后Javascript在用户点击时显示该选项卡:

代码语言:javascript
代码运行次数:0
运行
复制
function initTabs()  
{  
var tabContainer = dojo.byId('tabContainer');  
tabContainer.style.display = 'block';  
}  

如何动态显示/隐藏TabContainer而不使其以所示的状态启动?

EN

回答 9

Stack Overflow用户

发布于 2009-09-02 07:11:59

这是有解决方案的。如果您想要显示TabContainer调用:

代码语言:javascript
代码运行次数:0
运行
复制
dijit.byId("tabContainer").domNode.style.display = 'block';
dijit.byId("tabContainer").resize();

如果您想隐藏TabContainer,请使用'none‘。

这对我来说很有效,但这是事实,这并不明显:)

票数 9
EN

Stack Overflow用户

发布于 2011-06-22 03:28:23

但是我遇到了同样的问题,这就是我如何解决它的。首先,不能使用display:none。根据DOJO的人的说法,你必须使用可见性:使用dijits隐藏,否则这将不起作用。所以,你想要这个:

代码语言:javascript
代码运行次数:0
运行
复制
<div id="tabContainer" dojoType="dijit.layout.TabContainer" style="width:500px; height:100px;visibility:hidden;">

然后,要显示这一点,请执行以下操作:

代码语言:javascript
代码运行次数:0
运行
复制
dojo.style("tabContainer", "visibility", "visible");

现在,这带来的问题是你已经发现的。这将在您的视区中保留一个500px宽的不可见div。因此,如果你使用的是一个边框容器,你的页面中将会有一个500px的空白区域。为了解决这个问题,我必须以编程的方式创建dijit并将它们注入到一个空的div中,而不是像您那样做并声明性地做它。希望这能对外面的人有所帮助。

票数 6
EN

Stack Overflow用户

发布于 2009-08-11 16:12:46

你应该这样做

代码语言:javascript
代码运行次数:0
运行
复制
dijit.byId("tabContainer").domNode.style.display = 'block'

或者也许

代码语言:javascript
代码运行次数:0
运行
复制
dijit.byId("tabContainer").domNode.style.visibility = 'hidden';

甚至更好

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1261166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档