Html 如何在默认情况下隐藏页面元素,但在以后使用敲除显示它们?
我正在使用Knockout和jQuery开发一个单页web应用程序。页面正文分为不同的Html 如何在默认情况下隐藏页面元素,但在以后使用敲除显示它们?,html,knockout.js,Html,Knockout.js,我正在使用Knockout和jQuery开发一个单页web应用程序。页面正文分为不同的s,每个对应于某一页面;用户一次只能看到一个部分。我们正在使用Knockout的visible绑定来隐藏和显示相应的部分,而且效果很好 问题是,当页面加载时——当HTML已经加载,但Knockout尚未应用其绑定时——所有部分都是可见的。这种情况持续不到一秒钟,但很难看。我试图在节上设置display:none,这样它们一开始是不可见的,但有一个怪癖:如果表达式的计算结果为true,Knockout会将CSSd
s,每个对应于某一页面;用户一次只能看到一个部分。我们正在使用Knockout的visible
绑定来隐藏和显示相应的部分,而且效果很好
问题是,当页面加载时——当HTML已经加载,但Knockout尚未应用其绑定时——所有部分都是可见的。这种情况持续不到一秒钟,但很难看。我试图在节上设置display:none
,这样它们一开始是不可见的,但有一个怪癖:如果表达式的计算结果为true,Knockout会将CSSdisplay
属性设置为没有Knockout的任何属性
换句话说,设置data bind=“visible:true”
不会覆盖display:none
。这是有道理的,因为在很多情况下,您需要将显示指定为不可见的,或者说,表格单元格
,但在我的情况下,这很烦人。强制敲除以显示我的节元素的最佳方式是什么?事实证明,虽然敲除不会覆盖CSS中设置的显示:无,例如
body > section {
display: none;
}
如果同一样式指令出现在HTML中,它将覆盖该指令:
<section style="display: none" data-bind="...">
因此,我的问题的解决方案是将display:none
从CSS文件移动到style
属性中。当我想要显示我的
时,Knockout会覆盖属性以显示它。顺便说一句,如果使用而不是可见:
,不是更好吗?