【发布时间】:2012-07-04 18:28:51
【问题描述】:
在设计 html 界面元素时,根据特定事件显示/隐藏 DOM 是很常见的场景。我的问题很简单,但是每次遇到这个问题时,我总是想知道:将元素硬编码在 html 中并简单地切换显示属性(例如使用 .show/.hide)或动态添加/删除它们是否“更好”根据需要通过JS?两者实现起来都很简单,但我不禁想知道它们如何比较,以及使用其中一个是否有任何优点/缺点。
在某些情况下,例如在多个地方逐字使用相同元素时,动态创建 DOM 似乎很有意义,但另一方面,理论上硬编码更易于维护,因为您可以移动周围的 DOM 并根据需要更改它们,只要选择器对于 jQuery 仍然相同,它们就会按预期工作。一般来说,从设计师的角度来看,硬编码似乎是要走的路,但我期待着想法,也许我可能会在这里忽略一些事情。
编辑:“硬编码”是指根本不通过 JS 插入的元素;也就是说,元素的位置已经在其父文档中以原始 html 标记而不是由 JS 指定。
【问题讨论】:
-
在所有条件相同的情况下,显示或隐藏元素比将元素添加到 DOM 或从 DOM 中移除要快。此外,您可以在脚本动态获取的片段中“硬编码”标记,因此“动态”和“硬编码”之间的界限在这里变得模糊。 (顺便说一句,否决票不是我的。)
-
很大程度上取决于您将编写什么样的交互,作为设计师,我可以告诉您,有时 css 解决方案比 jquery 解决方案更好,反之亦然,但我认为,大多数时候, jQuery 是一个更好的选择,仅仅是因为旧浏览器的兼容性。
-
我已投赞成票取消它
-
@Frédéric Hamidi 公平点,我已经澄清了原始问题中“硬编码”的含义。至于速度我怀疑它,但还是很高兴听到它。