2011-11-05 27 views

Trả lời

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


Hoặc, nếu bạn không muốn để ràng buộc người nghe sự kiện trên khởi tạo, bạn có thể đeo nó như thế này:

$('#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

Hey bạn có thể vui lòng đề nghị đó là tốt hơn giữa hai? –

+0

@ HardikMishra Tôi sẽ đề nghị người đầu tiên, bởi vì nó sẽ không phá vỡ nếu tên sự kiện bằng cách nào đó kết thúc thay đổi trong tương lai! – Shef

+2

Tính năng này không hoạt động nữa kể từ 1.9, ui.index không được xác định. –

35

Bạn có thể sử dụng để tìm thấy

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

Từ JQuery 1.9 trên

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

+1 để hiển thị cách tìm tab đã chọn bên ngoài chương trình hoặc chọn sự kiện. Không phải những gì OP hỏi, nhưng những gì tôi cần biết. – davidethell

2

tôi chỉ thực hiện điều này trong một trong những dự án của tôi:

var lastTab = 0; // global variable 

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

Và rồi bất cứ nơi nào khác trong mã của bạn, bạn chỉ đơn giản là có thể tham khảo lastTab.

1

Đối với jQuery 1.9 hoặc mới hơn ...

$('#tabs').tabs({ 
    activate: function(event, ui) { 
     ui.newTab.index(); // zero-based index 
    } 
}); 
Các vấn đề liên quan