2011-11-05 301 views

回答

10
$('#tabs').tabs({ 
    select: function(event, ui) { // select event 
     $(ui.tab); // the tab selected 
     ui.index; // zero-based index 
    }, 
    show: function(event, ui) { // show event 
     $(ui.tab); // the tab shown 
     ui.index; // zero-based index 
    } 
}); 

Demo


或者,如果你不想绑定在初始化的事件监听器,你可以将它们绑定这样的:

$('#tabs') 
    .bind('tabsselect', function(event, ui) { // select event 
     $(ui.tab); // the tab selected 
     ui.index; // zero-based index 
    }) 
    bind('tabsshow'. function(event, ui) { // show event 
     $(ui.tab); // the tab shown 
     ui.index; // zero-based index 
    }); 
+0

嗨能否请你提出这是这两个之间的更好? –

+0

@HardikMishra我会建议第一个,因为如果事件名称在未来发生变化,它不会中断! – Shef

+2

从1.9开始,这不起作用,ui.index是未定义的。 –

35

你可以用它来找到

var $tabs = $('#tab').tabs(); 
var selected = $tabs.tabs('option', 'selected'); 

从JQuery的1.9上

var $tabs = $('#tab').tabs(); 
var selected = $tabs.tabs('option', 'active'); 
+14

+1,用于显示如何在显示或选择事件之外查找选定的选项卡。不是OP要求的,而是我需要知道的。 – davidethell

2

我实现了这个在我的项目之一:

var lastTab = 0; // global variable 

$(function() { 
    $('#tabs').tabs({ 
     select: function(event, ui) { 
      lastTab = ui.index; 
     } 
    }); 
}); 

然后在你的代码的其他地方,你可以直接引用lastTab

1

的jQuery 1.9或更高版本...

$('#tabs').tabs({ 
    activate: function(event, ui) { 
     ui.newTab.index(); // zero-based index 
    } 
}); 
相关问题