【发布时间】:2015-11-04 10:57:13
【问题描述】:
这是我的html:
<div class="profile_nav_tabs" id="profile_nav_tabs">
<ul class="profile-tabs">
<li>
<a data-toggle="tab" href="#tab1">Tab 1</a>
</li>
<li>
<a data-toggle="tab" href="#tab2">Tab 2</a>
</li>
<li>
<a data-toggle="tab" href="#tab3">Tab 3</a>
</li>
</ul>
</div>
<div class="tab-content">
<div class="tab-pane" id="tab1">Tab1</div>
<div class="tab-pane" id="tab2">Tab2</div>
<div class="tab-pane" id="tab3">Tab3</div>
</div>
这是我的 Javascript:
(function(){
var hash = window.location.hash;
if(hash){
$("#profile_nav_tabs " + "a[href=" + hash + "]").tab('show');
}
$('#profile_nav_tabs a').on('shown.bs.tab', function(event){
window.location.hash = event.target.hash;
alert("hello");
// some ajax call
})
})();
现在,如果我刷新页面,网址为local.dev/users/profile/#tab1,tab1 内容会出现,但shown.bs.tab 事件不会触发。也就是说,既不显示警报,也不进行 ajax 调用。
只有当我物理点击<a data-toggle="tab" href="#tab1">时才会触发该事件。
我希望在每次选项卡更改时更新 url,并且我还希望在页面加载时显示选项卡后进行回调。
shown.bs.tab 事件不会在以编程方式显示选项卡时触发吗?
【问题讨论】:
标签: javascript jquery twitter-bootstrap tabs