sol*_*ald 24 jquery knockout-2.0 knockout.js
我正在开发一个单页应用程序,它有一堆隐藏的div,绑定(或绑定?)到KnockoutJS visible:.当页面加载时,它们都会在屏幕上瞬间闪烁.我已经尝试将我的JS移动到了<head></head>,但是没有效果,所以在页面底部加载JS并不是导致它的原因.
不幸的是,visible:绑定不会传播到CSS display属性,因此我不能display: none;在页面加载时使用,或visible:根本不能使用.除非......我加载页面display: none;然后在第一次向用户显示div时更改它.
但有没有更优雅的方式来实现这一目标?
Tua*_*uan 56
Wth KnockoutJS,我通过定义一个名为hiddenwith 的CSS类来解决这个问题display:none,然后我将添加这个类并绑定到闪存容器:
class="hidden" data-bind="css: { hidden: false }"
Run Code Online (Sandbox Code Playgroud)
小智 5
我通过将我的"华丽"内容放在脚本模板中并使用ko的虚拟元素在另一个虚拟元素设置变量时加载模板来解决这个问题.
例如:
<!-- ko if: myVariable -->
<!-- ko template: { name: 'myTemplate' } --><!-- /ko -->
<script type="text/html" id="myTemplate">
<ul data-bind="foreach: blah...">
<li></li>
</ul>
</script>
<!-- /ko -->
Run Code Online (Sandbox Code Playgroud)
因此,当设置myVariable时,将使用脚本容器的内容代替模板虚拟元素.使用这种方法你不会看到任何闪烁的内容:-)
| 归档时间: |
|
| 查看次数: |
5883 次 |
| 最近记录: |