2009-10-08 13 views
5

Làm cách nào để chuyển chuỗi truy vấn (? id = avalue) với mỗi liên kết bên dưới được liên kết với các tab bên dưới. Tôi đang cố gắng để mở nội dung bên ngoài trong các tab (mà nó làm việc tốt) nhưng tôi đã không vượt qua một tham số với các url. Giá trị cho tham số sẽ giống nhau cho mỗi liên kết.jquery-ui-tabs. chuyển một chuỗi truy vấn

đang hoạt động của tôi:

<script type="text/javascript"> 

     $(function() { 
      $("#tabs").tabs({spinner:'<b>Retrieving Data...</b>'}); 

     }); 

</script> 


<div id="tabs"> 
      <ul> 
      <li><a href="table.aspx"><span>Introduction</span></a></li> 
       <li><a href="RequestActionUpdate.aspx"><span>Update</span></a></li> 
       <li><a href="tabstesttarget.aspx"><span>Target</span></a></li> 
       <li><a href="table.aspx" ><span>View History</span></a></li> 
      </ul> 

     </div> 

Bất kỳ giúp bạn có thể cung cấp cho tôi sẽ được nhiều đánh giá cao.

Cảm ơn trước

Trả lời

1

Bạn có thể hardcode các tham số cho mỗi liên kết:

<li><a href="RequestActionUpdate.aspx?id=avalue"><span>Update</span></a></li> 

này nên chỉ làm việc tốt. Chính xác thì điều gì không hiệu quả với bạn? Hoặc bạn có cái gì khác trong tâm trí?

+0

tôi quên đề cập rằng các tham số sẽ là như nhau cho mỗi tab nhưng sẽ khác nhau cho mỗi phiên. Tôi có ý định lấy nó từ, có lẽ, một hộp ẩn. –

1

Từ tìm kiếm mà tôi đã thực hiện, cách tốt nhất để tiếp cận này mà không cần phải làm điều gì đó xấu xí như:

window.location = href + '?id=avalue' 

sẽ được cập nhật hrefs neo trên tải trang. Lấy bất kỳ ID/giá trị nào bạn cần và chỉ cần thêm nó;

$(document).ready(function(){ 
    value = "?id=foobar" 
    $("#tabs ul li a").attr('href', ($(this).attr('href') + value)); 
}); 

Không phải là giải pháp thanh lịch nhất, nhưng nó hoạt động.

1

Điều gì xảy ra nếu bạn thêm người quan sát sự kiện vào tất cả các liên kết?

$("#tabs ul li a").click(
    function(){ 
     $(this).attr('href', $(this).attr('href') + $('#someHiddenInput').val()); 
    } 
); 
9

Bạn có thể sử dụng tùy chọn ajaxOptions. Tiện ích con tab sẽ chuyển các tùy chọn này lên jQuery.ajax().

Mã sau sử dụng tùy chọn data của hàm jQuery.ajax() để chuyển kết quả của hàm getId (mã thời gian kiểu Unix trong ví dụ này) đến máy chủ khi chọn tab.
Url yêu cầu sẽ giống như thế RequestActionUpdate.aspx?id=1255015611701:

function getId() { 
    return (new Date()).getTime(); 
} 

$("#tabs").tabs({ 
    spinner:'<b>Retrieving Data...</b>', 
    ajaxOptions: { data: { id: getId } } 
}); 
+0

Rực rỡ. Đây là giải pháp mà tôi đã cố gắng tìm, nhưng không thể thấy làm thế nào để làm điều đó. Chắc chắn là một giải pháp thanh lịch và hiệu quả. –

+0

Điều đó làm việc một điều trị! Rất cám ơn vì điều đó. –

+0

Vui vì tôi có thể giúp. Hãy nhớ đánh dấu câu trả lời là được chấp nhận;) – brianpeiris