我正在使用 Knockout 和 jQuery 开发一个单页 Web 应用程序。页面的body被划分为不同<section>
的s,每个s对应于某个页面;用户一次只能看到一个部分。我们使用 Knockout 的visible
绑定来隐藏和显示适当的部分,它工作正常。
问题是当页面加载时——当 HTML 已经加载但 Knockout 还没有应用它的绑定时——所有的部分都是可见的。这持续了不到一秒钟,但它是难看的。我试图设置display: none
这些部分,以便它们最初是不可见的,但是Knockout 的visible
绑定有一个怪癖:如果表达式的计算结果为 true,Knockoutdisplay
会将 CSS 属性设置为没有 Knockout 的任何内容。
换句话说,设置data-bind="visible: true"
不会覆盖display: none
. 这是有道理的,因为在某些情况下,您经常需要将显示指定为不可见或,例如,table-cell
但在我的情况下这很烦人。强制淘汰赛显示我的部分元素的最佳方式是什么?