注意:这只是回答的第一步。我打算改进它,当我有时间在 jQuery 选项卡构造函数中禁用一些东西时。
背景:
您可以进行一些小优化以更顺畅地加载tabs
. 但它基本上是易于使用的权衡。您已经在 html 中添加了一些 css 类,不要等到 jQuery 为您提供它。这避免了当 jQuery 接管时页面中的所有有趣动作,因为元素已经就位。
解释步骤:
1)div
包含所有选项卡:
- 您添加
ui-tabs
与 step2 结合使用的类将抑制原始列表并将导航放置到位。
- 您添加的类
ui-widget
将字体大小和第一个选项卡的位置固定在导航中。
2)ul
包含导航项目:
- 您添加
ui-tabs-nav
完成列表重新定位的类。
3)每个特定div
的包含选项卡面板,这是不活动的:
- 你添加
style="display:none;"
. 无论如何,这就是 jQuery 所做的。因此,您不必在选项卡准备好后删除样式。jQuery 为你做这件事。它也比粗略地隐藏选项卡的所有内容更精细。
4)将选项卡构造函数调用放入文档准备中也是个好主意:
$(document).ready(function(){$( "#tabs" ).tabs();}
结果:
所以你从原来的改变你的html
<div id="tabs">
<ul>
<li><a href="#tabs-1">Nunc tincidunt</a></li>
<li><a href="#tabs-2">Proin dolor</a></li>
<li><a href="#tabs-3">Aenean lacinia</a></li>
</ul>
<div id="tabs-1">
<p>tabs-1 content</p>
</div>
<div id="tabs-2">
<p>tabs-2 content</p>
</div>
<div id="tabs-3">
<p>tabs-3 content</p>
</div>
</div>
至:
<div id="tabs" class="ui-tabs ui-widget">
<ul class="ui-tabs-nav">
<li><a href="#tabs-1">Nunc tincidunt</a></li>
<li><a href="#tabs-2">Proin dolor</a></li>
<li><a href="#tabs-3">Aenean lacinia</a></li>
</ul>
<div id="tabs-1">
<p>tabs-1 content</p>
</div>
<div id="tabs-2" style="display:none;"><!-- display:none is later reverted by jQuery.tabs -->
<p>tabs-2 content</p>
</div>
<div id="tabs-3" style="display:none;">
<p>tabs-3 content</p>
</div>
</div>
结论:
- 您只是在使用 jQuery 样式。
- 在 jQuery 开始渲染之前,您的标签导航和标签面板已经就位。
- 呈现选项卡后无需任何清理(例如:从 中删除
display:none
) 。ul