Tôi biết tôi có thể lấy chỉ mục của tab hiện được chọn nhưng tôi có thể lấy ID (tương đương với ui.panel.id
nếu điều này được kích hoạt bởi sự kiện tab ... nhưng đó là không) của tab hiện được chọn? Tôi không muốn sử dụng chỉ mục vì thứ tự các tab có thể thay đổi. Tôi không muốn sử dụng các đánh dấu kiểu vì chúng có thể thay đổi trong các bản phát hành trong tương lai. Có một phương pháp cho điều này? Nếu không, tôi có thể bằng cách nào đó sử dụng chỉ mục để truy cập vào này (thậm chí có thể bằng cách truy cập vào đối tượng bảng điều khiển đầu tiên)? Bất kỳ ý tưởng nào khác?Cần ID tab hiện đang được chọn cho các tab jQuery
Trả lời
Bạn có thể sử dụng :visible
pseudo-selector để nhắm mục tiêu bảng điều khiển có thể nhìn thấy:
$("#tabs .ui-tabs-panel:visible").attr("id");
Nó đáng chú ý là bạn có thể lấy tab hoạt động từ activate event:
$("#tabs").tabs({
activate: function (event, ui) {
console.log(ui.newPanel[0].id);
}
});
Điều đó khá ngốc nghếch. Ví dụ: nếu bạn có nhiều tiện ích tab trên một trang? –
Sau đó, bạn cung cấp cho một bộ chọn cụ thể hơn. '$ (" # group1 .ui-state-active ")'. – Sampson
Giải pháp này không hiệu quả đối với tôi. Thay vào đó tôi tìm thấy câu trả lời này: http://stackoverflow.com/q/7967944/11992 – nikow
Như tôi đã đăng tải trong một trả lời cho this question, có một số cách để đạt được điều này.
Trên jQuery documents, họ đề xuất để làm những điều sau đây để tìm ra chỉ số của các tab đang mở:
var $tabs = $('#example').tabs();
var selected = $tabs.tabs('option', 'selected'); // => 0
Tuy nhiên, điều này là không thực tế nếu bạn cần phải làm rất nhiều với tab đó. Tại sao họ chưa cung cấp một giải pháp thực tế hơn để nhận được yếu tố thực tế, tôi không chắc chắn, tuy nhiên, thông qua việc sử dụng jQuery có một giải pháp dễ dàng mà bạn có thể tự tạo ra.
Trong đoạn mã sau tôi sẽ chỉ cho bạn như thế nào dễ dàng là để làm bất cứ điều gì bạn muốn với tab hiện tại:
var curTab = $('.ui-tabs-panel:not(.ui-tabs-hide)'),
curTabIndex = curTab.index(), // will get you the index number of where it sits
curTabID = curTab.prop("id"), // will give you the id of the tab open if existant
curTabCls = curTab.attr("class"); // will give you an array of classes on this tab
// etc ....
// now, if you wanted a little more depth, for instance specific tabs area (if you have multiple tabs on your page) you can do simply add to your selector statement
var curTab = $('#myTabs_1 .ui-tabs-panel:not(.ui-tabs-hide)');
// then you can make simple calls to that tab and get whatever data or manipulate it how you please
curTab.css("background-color", "#FFF");
Nếu bạn muốn id
(hoặc thực sự là href
) từ tab chọn , bạn có thể sử dụng eq()
để truy xuất đối tượng jQuery.
Bạn có thể thấy một ví dụ ở đây: http://jsfiddle.net/svierkant/hpU3T/1/
var curTab = $jQuery('#tabs .ui-tabs-panel:not(.ui-tabs-hide)').attr('id');
Sau JQuery 1,9 chọn bị phản
Vì vậy, sử dụng
var active = $("#jtabs").tabs("option", "active");
câu trả lời Jonathan Sampson của không hoạt động nữa. Hãy thử ...
$("#tabs .ui-tabs-panel:visible").attr("id");
jsFiddle: http://jsfiddle.net/tbEq6/
$("#tabs .ui-state-active a").attr("id");
này hoạt động:
$('#divName .ui-tabs-panel[aria-hidden="false"]').prop('id');
Thêm một số giải thích cho câu trả lời của bạn. –
Đối với jQuery UI> = 1.9, bạn có thể sử dụng ui.newPanel.selector
:
$('#tabs').on('tabactivate', function(event, ui) {
console.log(ui.newPanel.selector);
});
Đối với phiên bản jquery dưới 1.9:
<div class="roundedFloatmenu">
<ul id="unid">
<li class="titleHover" id="li_search">Search</li>
<li class="titleHover" id="li_notes">Notes</li>
<li class="titleHover active" id="li_writeback">Writeback</li>
<li class="titleHover" id="li_attorney">Attorney</li>
</ul>
</div
Và bạn có thể tìm thấy các tab hoạt động sử dụng:
jQuery('#unid').find('li.active').attr('id')
- 1. Các tab jQuery chọn tab cụ thể
- 2. Cách kích hoạt ('click') trên tab hiện đang hoạt động của tab jquery
- 3. nhận được văn bản tab trên các tab ui chọn jquery
- 4. Tab jQuery Twitter Bootstrap chọn
- 5. Các tab jQuery - nhận chỉ mục mới được chọn
- 6. Chọn trước tab đã bật ajax trong các tab giao diện người dùng jquery
- 7. jQuery - bẫy tab chọn sự kiện
- 8. tab Giao diện người dùng jQuery - kết hợp các tab và chọn để truy cập URL
- 9. RedirectToAction() với tab-id
- 10. Sublime Text 2 - các tab bị thiếu hiện đang mở
- 11. jQuery UI tab disable tab menu
- 12. làm cách nào để kiểm tra xem tab nào đang hoạt động bằng các tab jquery?
- 13. jQuery - Tìm active tab
- 14. Tìm tab hiện đang được chọn của Máy tính xách tay Ttk
- 15. Các tab jQuery không hoạt động
- 16. nhiều slickGrid trong các tab jQuery
- 17. đếm số lượng các tab hiện có trong jquery?
- 18. Các tab giao diện người dùng jQuery: nhận chỉ mục tab hiện tại
- 19. Các sự kiện tab jquery ui
- 20. Tab dọc với JQuery?
- 21. Các tab cuộn/phân trang JQuery
- 22. Cách tạo StyleBar, nền tab trên tab đã chọn
- 23. jquery tab postback problem
- 24. Các tab điều hướng di động jQuery
- 25. Làm mới nội dung tab khi nhấp chuột trong các tab Giao diện người dùng JQuery
- 26. JQuery "nổi" tab như GetSatisfaction
- 27. JTabbedPane: Các thao tác được thực hiện trước khi hiển thị tab đã chọn
- 28. Cần một ID duy nhất trong javascript cho cửa sổ tab và cho các cửa sổ mới trong Internet Explorer
- 29. Đóng tất cả các tab ngoại trừ tab đang hoạt động?
- 30. jquery-ui-tab nội dung can thiệp
Một biến thể của câu hỏi sẽ là: Có cách nào để có được bảng điều khiển tab từ chỉ số? –
Bản sao có thể có của [tab jQuery ui: nhận được id của tab (div) đang được kích hoạt] (http://stackoverflow.com/questions/1864219/need-currently-selected-tab-id-for-jquery-tabs) – mins