2012-01-31 31 views
7

Tôi có cùng một vấn đề như được mô tả ở đây: http://bugs.jqueryui.com/ticket/7930. Vấn đề là người duy trì không thể tái sản xuất nó, vì vậy vé được đóng lại. Mã của tôi trông như sau:Chọn trước tab đã bật ajax trong các tab giao diện người dùng jquery

<script type="text/javascript"> 
    $(document).ready(function() { 
     // assigns the value of a GET parameter called tab to tabIndex 
     var tabIndex = getUrlVars()['tab']; 

     if (isNaN(tabIndex)) { 
      tabIndex = 0; 
     } 

     // initializes tabs and selects the one provided in tabIndex (default: 0) 
     $('div#tabs').tabs({ ajaxOptions: { cache: false}, selected: tabIndex }); 
    }); 
</script> 
<div id="tabs"> 
    <ul> 
     <li>@Html.ActionLink("User roles", "Roles", "Admin", New With {.rand = DateTime.Now.Ticks}, Nothing)</li> 
     <li>@Html.ActionLink("Report templates", "Reports", "Admin", New With {.rand = DateTime.Now.Ticks}, Nothing)</li> 
     <li>@Html.ActionLink("Blabla", "2", "Admin")</li> 
     <li>@Html.ActionLink("Blabla2", "3", "Admin")</li> 
    </ul> 
</div> 

Điều này tạo ra các tab với id: # ui-tab-1, # ui-tab-2, # ui-tab-3, # ui-tab-4. Tôi truy cập trang qua url: http://server/Admin?tab=1. Tab thích hợp được chọn (tab thứ hai có báo cáo), nhưng cuộc gọi ajax được thực hiện cho href của tab trước (vai trò người dùng). Nó kết quả trong một nội dung tab trống được hiển thị. Bạn biết cách để sửa nó không?

+0

bạn có thể thêm mã chịu trách nhiệm cho cuộc gọi ajax không? – Rafay

+0

Nó được tự động thực hiện bởi các tab giao diện người dùng. Nếu tôi cung cấp một phần tử trong danh sách UL thì nó sẽ lấy các href và tự động gọi ajax khi thay đổi các tab. Bạn không cần phải viết mã của bạn để đạt được chức năng này. –

+0

Bạn đang sử dụng phiên bản mới nhất của jquery ui (1.8.17)? –

Trả lời

5

tôi đã sử dụng:

$('#tabs').tabs({ selected: tabIndex });

Nhưng tabIndex là một chuỗi (Tôi có được nó từ url hoặc url băm), do đó nó dẫn đến ví dụ:

$('#tabs').tabs({ selected: "2" });

Trong trường hợp này bạn có thể quan sát hành vi bất ngờ như vậy.
chức năng Số gọi trên tabIndex

tabIndex = Number(tabIndex)

giải quyết vấn đề này.

Các vấn đề liên quan