更新[ Sun 08/26/2012 ] 这个答案已经变得如此受欢迎,以至于我决定将其变成一个成熟的博客/教程
请访问我的博客在这里查看最新的轻松访问信息以使用jQueryUI
中的选项卡
还包括(也在博客中)是一个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 ....
PS。如果您使用 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 做了所有的努力,不要想得那么难。