1

我正在使用 twitter-bootstrap 导航栏与选项卡结合通过 ajax 加载表单(我使用 Django 来提供表单)

<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();
});

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

4

1 回答 1

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。那是刚刚“卸载”的选项卡。

于 2013-09-06T02:30:53.300 回答