Доступный семантический плагин jQuery tabs - PullRequest
3 голосов
/ 15 января 2010

Просто быстрый вопрос, чтобы узнать, знает ли кто-нибудь о каких-либо плагинах jquery tabs, которые работают на основе структуры, аналогичной:

<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 ]

3 голосов
/ 15 января 2010

Мне удалось что-то собрать, чтобы получить HTML-код с правильной структурой для использования вкладок пользовательского интерфейса jQuery.

$(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
     });



});
0 голосов
/ 26 марта 2010

Доступные вкладки jQuery почти у цели, за исключением того, что заголовок находится за пределами целевого элемента div.

...