Первая вкладка jQuery Nested Tabs не работает, пока вы не нажмете - PullRequest
0 голосов
/ 21 декабря 2009

Использование этого фрагмента кода для создания вкладок и вложенных вкладок прекрасно работает, за исключением того, что самая первая вложенная вкладка не будет работать, если вы не нажмете одну из других вложенных вкладок, а затем не вернетесь к первой ... Есть идеи? 1001 *

jQuery.fn.tabs = function () {
  return this.each(function () {
    var ul = jQuery(this);



    ul.find('a[href^=#]').each(function (i) {
      var tablink = jQuery(this);

      if (i) {
        jQuery(tablink.attr('href')).hide();

      }
      else {
        tablink.addClass('current');
      }

      tablink.click(function () {
        jQuery(ul.find('a.current').removeClass('current').attr('href')).hide();
        jQuery(tablink.addClass('current').attr('href')).show();
        if(tablink.attr('rel')){
          $("#tab-preloader").show();
          $.ajax(
            {
              url: tablink.attr('rel'),
              cache: false,
              success: function(message)
              {
              jQuery(tablink.attr('href')).empty().append(message);
              $("#tab-preloader").hide();
              }
            });
        };

        return false;
      });
    });
  });
};

Кроме того, я не знаю, связано ли это, но я извлекаю весь контент для вложенных вкладок с помощью rel "function". Меню выглядит так:

<li><a href="#tab1-b" rel="29623/static.html?nocache=true">Sports & Racing</a></li>
 <li><a href="#tab1-c" rel="29681/static.html?nocache=true">Shooters</a></li>

 <li><a href="#tab1-d" rel="29688/static.html?nocache=true">Kids & Family</a></li>

Пожалуйста, прости меня за недостаток знаний, я очень новичок в этом вопросе. Еще раз спасибо!

1 Ответ

1 голос
/ 21 декабря 2009

Если я правильно понимаю, вы хотите загрузить первую вкладку по умолчанию. Вы можете сделать это, вызвав событие click, например:

tablink.click(function () {
        //...
        });

//move down
if (i) {
    jQuery(tablink.attr('href')).hide();
}
else {
    tablink.click(); // will also add the class
}

Если вы не хотите изменять код, просто запустите его из своего кода после того, как вы позвоните tabs():

$('a.current').click();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...