CẬP NHẬT [ CN 26/08/2012 ] Câu trả lời này đã trở nên phổ biến đến mức tôi quyết định đưa nó thành một blog / hướng dẫn chính thức
Vui lòng truy cập Blog của tôi tại đây để xem thông tin mới nhất về cách dễ dàng truy cập để làm việc với các tab trong jQueryUI
Cũng được bao gồm (trong blog cũng vậy) là một jsFiddle
¡¡¡Cập nhật! Xin lưu ý: Trong các phiên bản mới hơn của jQueryUI (1.9+), ui-tabs-selected
đã được thay thế bằng ui-tabs-active
. !!!
Tôi biết chủ đề này đã cũ, nhưng điều mà tôi không thấy đề cập là cách lấy "tab đã chọn" (Bảng điều khiển hiện được thả xuống) từ một nơi nào đó ngoài "sự kiện tab". Tôi có một cách đơn giản ...
var curTab = $('.ui-tabs-panel:not(.ui-tabs-hide)');
Và để dễ dàng lấy chỉ mục, tất nhiên có cách liệt kê trên trang ...
var $tabs = $('#example').tabs();
var selected = $tabs.tabs('option', 'selected'); // => 0
Tuy nhiên, bạn có thể sử dụng phương pháp đầu tiên của tôi để lấy chỉ mục và bất kỳ thứ gì bạn muốn về bảng điều khiển đó khá dễ dàng ...
var curTab = $('.ui-tabs-panel:not(.ui-tabs-hide)'),
curTabIndex = curTab.index(),
curTabID = curTab.prop("id"),
curTabCls = curTab.attr("class");
// etc ....
Tái bút. Nếu bạn sử dụng biến iframe thì .find ('. Ui-tabs-panel: not (.ui-tabs-hide)'), bạn cũng sẽ thấy dễ dàng thực hiện việc này cho các tab đã chọn trong khung. Hãy nhớ rằng, jQuery đã làm tất cả công việc khó khăn, không cần phải phát minh lại bánh xe!
Chỉ để mở rộng (cập nhật)
Tôi đã đưa ra câu hỏi, "Điều gì sẽ xảy ra nếu có nhiều hơn một vùng tab trên chế độ xem?" Một lần nữa, hãy nghĩ đơn giản, sử dụng thiết lập tương tự của tôi nhưng sử dụng ID để xác định tab nào bạn muốn nắm giữ.
Ví dụ: nếu bạn có:
$('#example-1').tabs();
$('#example-2').tabs();
Và bạn muốn bảng điều khiển hiện tại của bộ tab thứ hai:
var curTabPanel = $('#example-2 .ui-tabs-panel:not(.ui-tabs-hide)');
Và nếu bạn muốn tab THỰC TẾ chứ không phải bảng điều khiển (thực sự dễ dàng, đó là lý do tại sao tôi không đề cập đến nó trước đây nhưng tôi cho rằng bây giờ tôi sẽ làm, chỉ để cho kỹ lưỡng)
// 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+
Một lần nữa, hãy nhớ rằng, jQuery đã làm tất cả công việc khó khăn, đừng suy nghĩ nhiều như vậy.