可访问的语义jQuery选项卡插件

时间:2010-01-15 10:26:02

标签: jquery jquery-ui jquery-tabs

只是一个简单的问题,看看是否有人知道任何基于类似结构运行的jquery选项卡插件:

<div class="tabs">
    <div>
        <h4>Tab one</h4>
        <p>Lorem Ipsum</p>
    </div>

    <div>
        <h4>Tab two</h4>
        <p>Lorem Ipsum</p>
    </div>
</div>

插件从h4s抓取标签的标题?我似乎只能找到使用该结构的插件:

<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>Tab 1 content</p>
   </div>
   <div id="tabs-2">
      <p>Tab 2 content</p>
   </div>
   <div id="tabs-3">
      <p>Tab 3 content</p>
   </div>
</div>

我假设使用这些插件的唯一方法是获取标题,删除它们,将它们添加到html顶部的列表中,然后根据它运行插件?我只是问,因为我对jQuery很新,所以我不确定我会怎么做,只是想知道是否有一个已经存在的插件,任何人都知道。

如果没有,不用担心,我将不得不忙着处理文档然后试一试!

干杯

2 个答案:

答案 0 :(得分:3)

我设法将一些东西放在一起以使html到正确的结构以使用jQuery UI标签 - 希望有人可以从中学到一些东西!

$(document).ready(function() {
     $.fn.reverse = [].reverse; //Set the reverse function
    $('#tabs div h4').reverse().prependTo('#tabs'); //Grab the headings and reverse them, then prepend to outer div
    $('#tabs h4').wrap('<li></li>'); //wrap each heading in an li
    $('#tabs > li').wrapAll('<ul class="tabheadings"></ul>'); //wrap all li's in ul
    $('#tabs ul li h4').each(function(){
      $(this).replaceWith('<a>' + $(this).text() + '</a>'); //for each heading replace with an anchor but keep innards
   });
    $('#tabs div.in_content_box').each(function(i){
       $( this ).attr('id', 'tabs-' + (i+1)); //for each div add an id with an incremental number
    });
    $('#tabs ul li a').each(function(i){
        $( this ).attr('href', '#tabs-' + (i+1)); //match the href on the anchor with the id above
     });



});

答案 1 :(得分:0)

jQuery Accessible Tabs几乎就在那里,除了标题位于目标div之外。