DOJO dường như có một số quirks ở đây. Tôi đặc biệt cần phải có TabContainer ẩn khi tải trang, nhưng sau đó trở nên có thể nhìn thấy sau khi người dùng nhấp vào một nút. Điều đầu tiên tôi đã thử là thiết lập style.display = "none" để bắt đầu, và sau đó thiết lập style.display = "block" trên sự kiện click. Thật không may, điều này chỉ hoạt động một phần - trang sẽ hiển thị một hộp vô hình ở đúng vị trí/kích thước, nhưng không hiển thị nội dung thực tế. Nội dung của hộp chỉ được hiển thị khi được kích hoạt bởi một thứ khác (ví dụ: chuyển đến tab FF khác hoặc tạm dừng/tiếp tục lại firebug sẽ làm cho hộp hiển thị).Làm cách nào để tự động hiển thị và ẩn toàn bộ TabContainer bằng DOJO?
Nếu thuộc tính style.display được đặt thành hiển thị khi tải trang, mọi thứ đều hoạt động tốt. Bạn có thể chuyển đổi thuộc tính hiển thị và nó hiển thị hoặc ẩn tabcontainer đúng cách. Nhưng nếu nó được đặt thành "không" khi tải trang, nó sẽ bị hỏng.
Tôi đã thử giải pháp thiết lập thuộc tính style.display thành "" trong HTML nhưng sau đó ngay lập tức đặt nó thành "none" trong Javascript, nhưng vẫn không thành công - thay đổi xảy ra quá sớm và nó cần phải xảy ra sau tabcontainer hiển thị (có thể mất một hoặc hai giây).
Một số mẫu mã tước:
HTML:
<div id="tabContainer" dojoType="dijit.layout.TabContainer" style="width:500px; height:100px;display:none;"
>
</div
>
và sau đó Javascript để hiển thị các tab trên một người dùng nhấp:
function initTabs()
{
var tabContainer = dojo.byId('tabContainer');
tabContainer.style.display = 'block';
}
Làm thế nào tôi có thể tự động hiển thị/ẩn một TabContainer mà không cần nó bắt đầu trong trạng thái hiển thị?
Giai đoạn 1 là "Sử dụng jQuery". Giai đoạn 3 là lợi nhuận. – cletus
Thấy lời khuyên đó một vài lần, nhưng tôi bị mắc kẹt với DOJO. –
Tôi không nghiêm túc. :) Đó là một chút của một bộ lạc ở toàn bộ "sử dụng jQuery" văn hóa (mặc dù tôi yêu jQuery vì vậy ...). – cletus