Jquery:href #hash无效

时间:2018-03-29 13:56:19

标签: javascript jquery tabs frontend

我有以下标签情况,当我点击标签时,它会转到相应的标签 URL不会更改为{{ 1}}或#foo,我的意思是它应该更改为#bar

abc.com/1#foo

这是Jquery:

<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
    <ul class="nav navbar-nav navbar-left tabs" data-tabgroup="pet-details-group">
        <li><a href="#foo">Foooo</a>
        </li>
        <li><a href="#bar">Barrr</a>
        </li>
    </ul>
</div>

<div class="container no-padding tabgroup" id="pet-details-group">
    <div id="foo">
        Foooooo
    </div>
    <div id="bar">
        Barrrr
    </div>
</div>

我不知道自己错过了什么。

2 个答案:

答案 0 :(得分:1)

好的尝试以下内容:

$('.tabgroup > div').hide();
    $('.tabgroup > div:first-of-type').show();
    $('.tabs a').click(function(e){
        var $this = $(this),
            tabgroup = '#'+$this.parents('.tabs').data('tabgroup'),
            others = $this.closest('li').siblings().children('a'),
            target = $this.attr('href');
        others.removeClass('active_link');
        $this.addClass('active_link');
        $(tabgroup).children('div').hide();
        $(target).show();
    }).filter('[href="' + location.hash + '"]').trigger('click');

答案 1 :(得分:0)

您想获取当前location.hash(#foo,#bar等)的值,并使用它来触发页面加载时的标签选择。

这样的事情可以解决问题:

$('.tabs a').click(function(e) {
  // ... no changes here
})
.filter('[href="' + location.hash + '"]')
.trigger('click')

所以只需从上面添加两个新行。