4

我想在页面加载时初始化 Twitter Bootstrap 选项卡时附加一个操作(例如警报)。

我可以将操作附加到任何后续选项卡事件:

$('a[data-toggle="tab"]').on('show', function (e) {
    alert('tab shown');
}); 

但我想在一开始就对事件“初始化”(或任何该事件的名称)做类似的事情。

4

1 回答 1

7

与其尝试绑定无法实现的已初始化事件,不如通过删除data-toggle="tab"来禁用自动初始化。

然后你把你自己的初始化,并添加一个回调来模仿事件调用。

$('#myTab .tab a').each(function() {
    var $this = $(this);
    $this.click(function (e) {
        e.preventDefault();
        $this.tab('show');
    });
    someCallback.call(this);
});
<ul class="nav nav-tabs" id="myTab">
    <li class="active tab"><a href="#home">Home</a></li>
    <li class="tab"><a href="#profile">Profile</a></li>
    <li class="tab"><a href="#messages">Messages</a></li>
    <li class="tab"><a href="#settings">Settings</a></li>
    <li><a href="#">Regularlink</a></li>
</ul>

当然有一种更标准的方法来处理事件和所有事件,但这很简单,也很容易实现。

示例(jsfiddle)

于 2012-07-04T18:40:19.070 回答