2009-12-21 2 views
0

Использование этого бита кода для создания вкладок и вложенных вкладок отлично работает, за исключением того, что первая вложенная вкладка не работает, если вы не нажмете на одну из других вложенных вкладок, тогда вернуться к первому ... Любые идеи?Первая вкладка вкладки «Вложенные вкладки» jQuery не работает, пока вы не нажмете ее.

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

Кроме того, я не знаю, если это связано, но я потянув все содержимое для вложенных вкладок с «функцией» отн. Меню выглядит так:

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

Прошу простить мою нехватку знаний, я очень новичок во всей работе jquery. Еще раз спасибо!

ответ

1

Если я правильно понял, вы хотите загрузить первую вкладку по умолчанию. Вы можете сделать это, запустив его 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(); 
Смежные вопросы