Jquery选项卡生成的UI / div id

时间:2011-05-03 22:21:29

标签: jquery jquery-ui jquery-ui-tabs

我目前遇到的问题是jquery Tabs UI生成标签的div。

通常,用户首先会调用$(“tabs”)。tab()来初始化标签。

 <div id="tabs">
    <ul>
      <li>
        <a href="controls/form_unassigned.html" id="channel1_link">CH1 N/A</a>
      </li>

      <li>
        <a href="controls/form_srw.html" id="channel2_link">CH2 N/A</a>
      </li>

     </ul>
  </div>

这将创建

<div id="ui-tabs-1" class="ui-tabs-panel ui-widget-content ui-corner-bottom">
</div>

<div id="ui-tabs-2" class="ui-tabs-panel ui-widget-content ui-corner-bottom">
</div>

div id是“ui-”+ +的预期值。

但是如果你调用$(“tabs”)。tab()再次初始化而不刷新浏览器,增加的id不会从0开始从2开始。因此选项卡将设置为:

<div id="ui-tabs-3" class="ui-tabs-panel ui-widget-content ui-corner-bottom">
</div>

<div id="ui-tabs-4" class="ui-tabs-panel ui-widget-content ui-corner-bottom">
</div>

然而,我想要的欲望效果是每次调用initialize时id从0开始。所以不是3/4为div id,我想要1/2。我尝试在每次初始化时调用.tabs('destroy'),希望能重置自动生成的id,但这也不起作用。我在jquery选项卡UI上找不到任何可以解决此问题的内容,或者我只是没有看到它。

我希望id从0开始的原因是因为我使用这个特定的div来动态填充内容。

任何建议表示赞赏,谢谢! d

2 个答案:

答案 0 :(得分:0)

如果不修改jQuery UI源代码就不可能。

tabId只能从包含标签模块的anonymous function内部看到,并且不会“导出”任何功能来更改它。

如果您可以接受非常脏的黑客攻击,请在该功能中添加以下内容:

window.resetTabID = function() {
    tabId = 0;
}

这将允许您调用全局函数resetTabID()来重置选项卡ID。但是,你最好不要使用这样的黑客。

答案 1 :(得分:0)

Per this post - 使用title属性。

&#13;
&#13;
<div id="example">
     <ul>
         <li><a href="ahah_1.html"><span>Content 1</span></a></li>
         <li><a href="ahah_2.html"><span>Content 2</span></a></li>
         <li><a href="ahah_3.html"><span>Content 3</span></a></li>
     </ul>
</div>
Obviously this degrades gracefully - the links, e.g. the content, will still be accessible with JavaScript disabled.

Note that if you wish to reuse an existing container, you could do so by matching a title attribute and the container's id:

<li><a href="hello/world.html" title="Todo Overview"> ... </a></li>
and a container like:

<div id="Todo_Overview"> ... </div>
&#13;
&#13;
&#13;

效果很好!