UPDATE [ 太阳2012年8月26日 ]这个答案已经变得如此受欢迎,我决定把它变成一个完整的博客/教程
请访问我的博客在这里看到方便地访问信息,最新的与工作选项卡中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做了所有艰苦的工作,不要这么想。