0

我已经使用 jQuery UI 选项卡创建了一个界面,但是我的要求之一是有一个“全部”选项,该选项可以同时显示选项卡组中所有页面的内容。

我的选项卡是从 PHP 动态生成的,我给每个选项卡按钮一个 id,以便结果如下所示:

<li ><a id='tabProjectBrief' href="#section1">Project Brief</a></li>
<li ><a id='tabScorecard' href="#extra1">Scorecard</a></li>
<li ><a id='tabContributions' href="#section2">Contributions</a></li>
<li ><a id='tabOther' href="#section6">Other</a></li>
<li ><a id='tabAll' href="#all">All</a></li>

然后在我的 JavaScript 中,我有以下内容:

$(document).ready(function() {
  $('#tabAll').click(function(){

    setTimeout("$('div.tabSection').removeClass('ui-tabs-hide')", 50);
  });
});

我正在使用setTimeout(),因为选择了选项卡时,jQuery UI在先前选择的选项卡上设置UI-Tab-Hide类,从而从我可以在新选项卡上单击“事件”之后发生的内容。这样,刚刚收到 ui-tabs-hide 类的选项卡也会将其删除。

它似乎工作得很好,但是对我来说感觉有点像黑客,那么有没有更好的方法来做到这一点?谢谢。

4

1 回答 1

0

你的解决方案对我来说似乎很好。$("div.tab-section").show();更干净,但会保持类名完整,如果用户在单击“全部”选项卡后选择另一个选项卡,您不希望这样做。

于 2009-02-13T20:49:55.533 回答