更新[ 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();
そして、2 番目のタブ セットの現在のパネルが必要です。
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 がすべてのハードワークを行ったことを思い出してください。それほど難しく考えないでください。