2014-01-06 93 views
1

我的网页顶部有一个导航菜单,并有一个下拉菜单。例如在导航服务页面有一个下降我们的其他业务的下降是去一个服务页面,其选项卡结构如下所示:将主页上的锚定标记链接到特定标签

<section class="tabs"> 

    <ul class="tab-nav"> 
     <li class="active"><a href="#first">First Tab</a></li> 
     <li><a href="#second">Second Tab</a></li> 
     <li><a href="#third">Third Tab</a></li> 
    </ul> 

    <div class="tab-content"> 
     <p>Here's the first piece of content</p> 
    </div> 
    <div class="tab-content active"> 
     <p>My tab is active so I'll show up first! Inb4 tab 3!</p> 
    </div> 
    <div class="tab-content"> 
     <p>Don't forget about me! I'm tab 3!</p> 
    </div> 

</section> 

,我想喜欢让这个我可以用我的阿克尔标签直接链接到我选择的选项卡3或1或2,以及当我使用选项卡刷新的页面不会跳转到活动选项卡时。我怎样才能做到这一点与JavaScript?我用这个代码哈希检查功能位尝试过:

$(function() { 
    $(".tab-content").hide().first().show(); 
    $(".tab-nav li:first").addClass("active"); 

    $(".tab-nav a").on('click', function (e) { 
     e.preventDefault(); 
     $(this).closest('li').addClass("active").siblings().removeClass("active"); 
     $($(this).attr('href')).show().siblings('.tab-content').hide(); 
    }); 

    var hash = $.trim(window.location.hash); 

    if (hash) $('.tab-nav a[href$="'+hash+'"]').trigger('click'); 

}); 

的问题是,是,当我点击第二个选项卡,它显示了第一个选项卡上的内容...但标签3看起来不错。但是当我点击标签3然后回到标签2时,标签2下面没有显示任何内容。也许有人可以简单地通过我的代码来完成我想要完成的任务?

ps。我为我的标签使用了gumby框架

回答

0

首先,$($(this).attr('href'))不会找到任何东西,因此无论如何都不会有任何标签工作。

除此之外,散列链接代码似乎很好。


我已经重写了代码,以便它现在在下面工作。

链接:http://jsfiddle.net/s8Ttm/2/

代码:

$(".tab-nav a").bind('click', function (e) { 
    e.preventDefault(); 
    $(this).parents('li').addClass("active").siblings().removeClass("active"); 
    $('.tab-content').removeClass('active').hide(); 
    console.log($('.tab-content:eq('+$(this).index()+')')); 
    $('.tab-content:eq('+$(this).parents('li').index()+')').addClass('active').show(); 
}); 

$('.tab-nav a').first().click(); 

var hash = $.trim(window.location.hash); 
if (hash) $('.tab-nav a[href$="'+hash+'"]').trigger('click'); 
+0

谢谢,它的伟大工程,当我在主页上,但是当我的服务标签页(其中的选项卡上是)标签工作正常,但我的导航下拉菜单不会带我到任何其他标签点击。即。下拉菜单工作在主页和任何其他页面的标签不是,但当我在页面上的标签下拉不会工作。 – Garuuk

+0

@ user2241963你能告诉我发生了什么吗? (即这个家庭/服务页面在哪里) –

+0

当然。为简单起见,我的网站简而言之就是:三页:主页,服务页面和联系页面。所有这三个按钮都具有相同的导航栏按钮使用主页,服务,联系服务按钮并具有链接到服务页面上选项卡的下拉菜单。在服务页面上有三个选项卡。当我在服务页面上时,单击下拉菜单导航到其他选项卡(而不是仅仅单击选项卡本身),没有任何反应。只有当我在家中并且联系人时,导航菜单才会将​​我带到服务页面上的选项卡上。 – Garuuk