DOJO にはいくつかの癖があるようです。特に、ページの読み込み時に TabContainer を非表示にする必要がありますが、ユーザーがボタンをクリックすると表示されるようになります。私が最初に試したのは、style.display = "none" を設定して開始し、次にクリックイベントで style.display = "block" を設定することです。残念ながら、これは部分的にしか機能しません。ページは目に見えないボックスを適切な場所/寸法にレンダリングしますが、実際のコンテンツはレンダリングしません。ボックスの内容は、他の何かによってトリガーされた場合にのみレンダリングされます (たとえば、別の FF タブに移動するか、firebug を一時停止/再開すると、ボックスがレンダリングされます)。
style.display プロパティがページの読み込み時に表示されるように設定されている場合、すべてが正常に機能します。表示プロパティを切り替えると、タブコンテナを適切に表示または非表示にできます。しかし、ページの読み込み時に「なし」に設定されていると、うまくいきません。
HTML で style.display プロパティを "" に設定し、すぐに Javascript で "none" に設定するという回避策を試みましたが、それでも失敗します。これには 1 ~ 2 秒かかる場合があります)。
一部のサンプルコードを削除:
HTML:
<div id="tabContainer" dojoType="dijit.layout.TabContainer" style="width:500px;
height:100px;display:none;"
>
</div
>
次に、ユーザーがクリックしたときにタブを表示するJavascript:
function initTabs()
{
var tabContainer = dojo.byId('tabContainer');
tabContainer.style.display = 'block';
}
表示された状態で開始せずに TabContainer を動的に表示/非表示にするにはどうすればよいですか?