【发布时间】:2015-11-04 10:23:09
【问题描述】:
假设我有以下 HTML sn-p:
<div class="group-of-things">
<span>thing #1</span>
<span>thing #2</span>
<span data-bind="if: showThing3">thing #3</span>
</div>
现在假设我有一个 CSS 可以在 group-of-things 的最后一个孩子上圆角:
.group-of-things > *:last-child { border-radius: 0 5px 5px 0 }
问题是,当showThing3 变为假时 - thing #3 被隐藏(内容被删除),但包含(第三个)span 仍保留在 DOM 中,因此 thing #2 不会 得到圆角。
这可以通过使用无容器绑定 (<!-- ko if: showThing3 -->) 来解决,但我想避免使用无容器绑定,因为我无法控制的管道正在剥离 cmets。
也许可以调整 CSS 规则以仅考虑可见的子元素(例如,我可以使用 css 绑定在隐藏元素上添加 hidden 类)。
是否有更优雅的解决方案可以真正从 DOM 中删除有问题的 span?
【问题讨论】:
标签: knockout.js