更新 [2012 年 8 月 26 日星期日] 这个答案已经变得如此受欢迎,以至于我决定把它变成一个成熟的博客/教程
请访问My Blog Here 以查看在 jQueryUI 中使用 tabs 的最新轻松访问信息
还包括(也在博客中)jsFiddle
¡¡¡ 更新!请注意:在较新版本的 jQueryUI (1.9+) 中,ui-tabs-selected 已替换为 ui-tabs-active。 !!!
我知道这个帖子很旧,但是 我没有看到提到的是如何从其他地方获取“选定的选项卡”(当前下拉面板)比“标签事件”。
我确实有一个简单的方法...
var curTab = $('.ui-tabs-panel:not(.ui-tabs-hide)');
而且为了方便获取索引,当然还有网站上列出的方式……
var $tabs = $('#example').tabs();
var selected = $tabs.tabs('option', 'selected'); // => 0
但是,您可以使用我的第一种方法轻松获取索引以及您想要的关于该面板的任何内容...
var curTab = $('.ui-tabs-panel:not(.ui-tabs-hide)'),
curTabIndex = curTab.index(),
curTabID = curTab.prop("id"),
curTabCls = curTab.attr("class");
// etc ....
附言。如果您使用 iframe 变量然后使用 .find('.ui-tabs-panel:not(.ui-tabs-hide)'),您会发现对框架中的选定选项卡执行此操作也很容易。
请记住,jQuery 已经完成了所有艰苦的工作,无需重新发明轮子!
只是为了扩展(更新)
有人向我提出了一个问题,“如果视图上有多个选项卡区域怎么办?”
再一次,只是想简单,使用我相同的设置,但使用一个 ID 来识别你想要掌握的标签。
例如,如果您有:
$('#example-1').tabs();
$('#example-2').tabs();
而你想要第二个标签集的当前面板:
var curTabPanel = $('#example-2 .ui-tabs-panel:not(.ui-tabs-hide)');
如果你想要 ACTUAL 选项卡而不是面板(真的很简单,这就是为什么我之前没有提到它,但我想我现在会提到它,只是为了彻底)
// for page with only one set of tabs
var curTab = $('.ui-tabs-selected'); // '.ui-tabs-active' in jQuery 1.9+
// for page with multiple sets of tabs
var curTab2 = $('#example-2 .ui-tabs-selected'); // '.ui-tabs-active' in jQuery 1.9+
再一次,记住,jQuery 做了所有的努力,不要想得那么难。