Knockout と jQuery を使用して単一ページの Web アプリを開発しています。ページの本文はさまざまな に分割され<section>
、それぞれが特定のページに対応します。ユーザーには一度に 1 つのセクションしか表示されません。Knockout のvisible
バインディングを使用して、必要に応じてセクションを表示および非表示にしていますが、問題なく動作します。
問題は、ページの読み込み中 (HTML は読み込まれているが Knockout がまだバインディングを適用していないとき) に、すべてのセクションが表示されることです。これは 1 秒未満続きますが、見苦しいです。最初はセクションが非表示になるようにセクションを設定しようとしましたが、 Knockout のバインディングdisplay: none
には癖があります。式が true と評価されると、Knockout は CSSプロパティを Knockout なしの場合の値に設定します。visible
display
つまり、設定data-bind="visible: true"
は上書きされませんdisplay: none
。これは理にかなっています。なぜなら、ディスプレイを非表示またはたとえば として指定する必要がある状況がよくあるからですがtable-cell
、私の場合は面倒です。Knockout にセクション要素を強制的に表示させる最良の方法は何ですか?