2013-02-07 98 views
1

我使用Twitter的引导的导航栏与突片组合在通过AJAX形式加载(我使用Django以服务形式)Twitter bootstrap导航栏选项卡“隐藏”事件?

<ul class="nav nav-pills" id="tabs"> 
    <li><a href="#form1" data-toggle="tab">Form1</a></li> 
    <li><a href="#form2" data-toggle="tab">Form2</a></li> 
    <li><a href="#form3" data-toggle="tab">Form3</a></li> 
</ul> 

<div class="tab-content"> 
    <div class="tab-pane" id="form1" data-src="{% url form1 %}"></div> 
    <div class="tab-pane" id="form2" data-src="{% url form2 %}"></div> 
    <div class="tab-pane" id="form3" data-src="{% url form3 %}"></div> 
</div> 

这夫妇jquery的:

$('#tabs').bind('show', function(element) { 
    paneID = $(element.target).attr('href'); 
    src = $(paneID).attr('data-src'); 
    $(paneID).load(src); 
}); 

首先,我的一部分想知道这是否是一个坏主意。我想不出为什么,但如果有人可以指出这种方法是否有任何缺点,我将不胜感激。其次,当我离开标签页时,我想为该标签内容触发“onunload”事件。但是,我似乎无法找到一种方法来从导航栏中远离标签时“卸载”数据。

$('#tabs').bind('hide', function(element) { 
    doStuff(); 
}); 

显然是无效的。任何帮助/指导表示赞赏。

回答

2

Bootstrap选项卡在显示选项卡时触发事件。

http://getbootstrap.com/2.3.2/javascript.html#tabs

从引导措施:

$('a[data-toggle="tab"]').on('shown', function (e) { 
    e.target // activated tab 
    e.relatedTarget // previous tab 
}) 

可以使用relatedTarget。这是“卸载”的选项卡。