我有以下标签情况,当我点击标签时,它会转到相应的标签,但 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>
我不知道自己错过了什么。
答案 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')
所以只需从上面添加两个新行。