15

我需要根据引导 jQuery 选项卡部分中的选定选项卡“重置”一些页面信息。

文档显示了这个事件,这正是我需要的:http: //twitter.github.com/bootstrap/javascript.html#tabs

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

我需要获取 and 的 'href' 属性e.Targete.relatedTarget它唯一地标识这 2 个选项卡和它们链接到的 2 个选项卡内容窗格。

这是我的问题:e对象是一些我不期望或不习惯的对象。我不能使用任何 jQuery 方法,例如e.target.attr('href')——我以前使用的所有普通 jquery 方法都消失了。我尝试像原始对象属性一样访问它——e.hrefhttps://127.0.0.1/test?action=view#tab-a"没有#tab-a

我可以编写一个解决方法 - 但我显然做错了什么。应该有一种简单的方法可以直接从中获取#tab-a-e.target但我无法弄清楚。

4

4 回答 4

27

Try $(e.target).attr('href') instead.

于 2012-10-31T18:34:26.417 回答
4

迟到的派对是我的看法:

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

    e.currentTarget ...

});

e.currentTarget 是刚刚点击的当前锚点

于 2014-09-13T16:52:37.383 回答
1

如果有人需要知道当前选择了哪个选项卡索引,而不需要在 DOM 中手动计算它。

用例:当#hrefs 动态更新并且您可以在选项卡索引上进行中继时。

jQuery 函数.index()返回整数,指示 jQuery 对象中第一个元素相对于其兄弟元素的位置

var el = jQuery('#some .thing'); // some DOM node that contains tab html structure
var tab_list = el.find('.tabbable').first().find('a[data-toggle="tab"]');
// event namespace ".bs.tab" is important in some versions of Bootstrap 
tab_list.on('shown.bs.tab', function(e){

    // zero based index
    // jQuery function `.index()` returns zero-based DOM "order" index
    tab_index = $(e.target).parent().index();

    // store this index to cookie or somwhere
    // so that you can show that tab again when user comes back to page
    // or makes a page refresh (F5)
});
于 2014-02-03T11:41:52.443 回答
0

这些都应该工作。

  1. $(e.target).attr('href');
  2. e.target.hash;
  3. $(this).attr('href');
  4. this.hash
于 2014-10-07T17:12:06.950 回答