2012-02-12 34 views
10

Tôi cần thay đổi tab khi nhấn nút và tab phải được xác định theo id. Các mã sau đây không làm việc cho tôi - chỉ trang web được nạp lại:Làm thế nào để thay đổi tab Twitter Bootstrap, khi nhấn nút?

<div class="form-actions"> 
    <button class="btn btn-primary" id="btn-next">Next</button> 
    <button type="reset" class="btn">Clear</button> 
</div> 
... 
<div class="tab-pane active" id="2"> 
... 

$("#btn-next").click(function(event) { 
    $('#2').tab('show'); 
}); 

Trả lời

16

Bạn có thể sử dụng một cái gì đó như thế này:

function nextTab(elem) { 
    $(elem + ' li.active') 
    .next() 
    .find('a[data-toggle="tab"]') 
    .click(); 
} 
function prevTab(elem) { 
    $(elem + ' li.active') 
    .prev() 
    .find('a[data-toggle="tab"]') 
    .click(); 
} 

và sử dụng nextTab('#tab'); hoặc prevTab('#tab');

Sống dụ với các hành động tiếp tục: http://jsbin.com/atinel/9/edit#javascript,html

+0

Lạ, nhưng nó không hoạt động trong trường hợp của tôi (tôi sử dụng ''# 2'' thay vì'' # tab''). Và với ví dụ trực tiếp, nó chỉ hoạt động một lần (nếu tôi nhấn Next lần thứ hai, jsbin hiển thị mã). Tôi sử dụng phiên bản FF mới nhất. –

+0

không cung cấp số như ID ... luôn bắt đầu bằng một chữ cái! – balexandre

+0

@balexandre jsbin không có lỗi được mô tả bởi LA_, nhưng hoạt động tốt khi đưa vào mã của tôi. Cảm ơn – arbme

4

Điều gì về việc sử dụng data-toggle="tab" trong một thẻ <a>? Một cái gì đó như:

<a href="#2" class="btn btn-primary" id="btn-next" data-toggle="tab">Next</a> 
+2

Có, nó hiển thị tab tiếp theo, nhưng không hoàn toàn chính xác - nội dung của tab tiếp theo được hiển thị, nhưng tab đầu tiên vẫn được đánh dấu là đã chọn. –

+2

Tôi đã thử điều này trên một liên kết href trong bảng điều khiển nội dung nói TAB 2 để mở bảng điều khiển nội dung TAB 1, hoạt động hoàn hảo .. nhưng trạng thái tab hoạt động không thay đổi. Tôi đang sử dụng thích hợp href #id và data-toggle = "tab" thậm chí đã cố gắng thêm class = active vào href, không đi .. bất kỳ ý tưởng? – 422

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