在 jQuery 选项卡 UI 中的活动选项卡上显示另一个 div
我想知道当 jQuery UI 选项卡中的一系列选项卡处于活动状态时如何显示另一个 div。
tabs-1 包含少量文本,而其他选项卡 2-4 包含更多文本,因此这些选项卡(当处于活动状态时)会延伸至页面下方。我想要做的是,当选项卡 2 到 4 中的任何一个处于活动状态时,能够在 #myotherdiv
中填充更多内容。
因此,如果 tabs-3 处于活动状态,我如何才能获得另一个 div,即 .extradiv 以显示在 #sidebar 中的 #tabs
div 之外?
我是否使用 jQuery 挂接到选项卡的活动状态以在 #sidebar 中显示 .extradiv
?还有其他方法吗?
2011 年 4 月 26 日答案如下
基本 jQuery UI 选项卡结构
<div id="tabs">
<ul>
<li><a href="#tabs-1"></a></li>
<li><a href="#tabs-2"></a></li>
<li><a href="#tabs-3"></a></li>
<li><a href="#tabs-4"></a></li>
</ul>
<div id="tabs-1">
"short" content
</div>
<div id="tabs-2">
"long" content
</div>
<div id="tabs-3">
"long" content
</div>
<div id="tabs-4">
"long" content
</div>
</div>
侧边栏
<div id="sidebar" class="widget">
<div class="extradiv">content</div>
</div>
I'm wondering how to show another div when a range of tabs in jQuery UI Tabs is active.
tabs-1 contains a small amount of text, while the other tabs 2-4 contain much more text, so those tabs - when active - extend far down the page. What I'd like to do is be able to populate the sidebar with more content in #myotherdiv
when any of the tabs 2 through 4 are active.
So if tabs-3 is active, how do I also get another div, i.e. .extradiv to show outside the #tabs
div in the #sidebar?
Do I hook into the active state of the tab with jQuery to show the .extradiv
in #sidebar? Some other way?
4/26/11 answer below works
Basic jQuery UI tab structure
<div id="tabs">
<ul>
<li><a href="#tabs-1"></a></li>
<li><a href="#tabs-2"></a></li>
<li><a href="#tabs-3"></a></li>
<li><a href="#tabs-4"></a></li>
</ul>
<div id="tabs-1">
"short" content
</div>
<div id="tabs-2">
"long" content
</div>
<div id="tabs-3">
"long" content
</div>
<div id="tabs-4">
"long" content
</div>
</div>
Sidebar
<div id="sidebar" class="widget">
<div class="extradiv">content</div>
</div>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
load
事件处理程序仅在动态加载选项卡时触发。请改用show
事件:The
load
event handler only fires when the tab is loaded dynamically. Use theshow
event instead:弗雷德的建议似乎有效。你可能错误配置了你的CSS?请参阅此处的演示:http://jsbin.com/ateru6/5
您可以在此处查看源代码: http://jsbin.com/ateru6/5/edit
JavaScript:
CSS:
Fred's suggestion seems to work. You might mis-configured your css? See the demo here: http://jsbin.com/ateru6/5
You can look at the source here: http://jsbin.com/ateru6/5/edit
JavaScript:
CSS:
如果您想让它更加动态,请添加
load
事件处理程序并检查正在加载哪个选项卡(或选项卡的大小)。当选择该选项卡或选项卡大小超过特定阈值时添加额外内容。有关如何为 Tab 小部件添加事件处理程序的更多示例,请参阅 jQuery UI 站点上的文档。Add
load
event handler and check which tab is being loaded (or the size of the tab) if you want to make it more dynamic. Add the extra content when that tab is chosen or the tab size exceeds a certain threshold. See the documentation on the jQuery UI site for more examples of how to add event handlers for the Tab widget.这有效:
当您进入选项卡 3
http://jsfiddle.net/Ln4L7/2 时尝试查看红色 div /
This works:
try and see the red div when you go on tab 3
http://jsfiddle.net/Ln4L7/2/