所以你有一个清单和另一个清单。一个用于导航,另一个用于元数据。
现在,我们的想法是用户将在导航列表中添加,重新排序和删除项目,并且应该更新元列表以反映导航列表中正在发生的事情。通过向导航列表添加项目,将一大块HTML附加到元列表中。
请记住我将使用jQuery。
所以我质疑的是建立元素集之间关系的最佳方式。现在我意识到我可以使用索引和:eq()等,但是在一个包含大量容器的复杂实现中,事情可能变得毛茸茸......而且几个月或几年后回来做维护可能会很痛苦。
只是想知道人们是否有建立明确关系的建议。将id存储在隐藏字段中?某种主数组?
答案 0 :(得分:2)
你正在考虑这种方式可能会产生一些意大利面条代码。我强烈建议你看一下像backbone.js这样的MVC框架。 http://documentcloud.github.com/backbone/> Backbone有一个强大的事件模型,可以让一大块UI代码轻松地将事件广播到其他UI代码块。
使用骨干,您可以使用模型来跟踪项目的状态。然后,您可以使用模块化视图“订阅”来添加/删除/更改模型上的事件。
Backbone字面上是为了解决你的app所面临的问题:“如何跟踪我所有对象的状态?当它们发生变化时,如何跟踪后续的UI变化?”
希望这有帮助
答案 1 :(得分:0)
嗯,我想你可能会把它变得比必要的更复杂。如果您有DOM部分跟踪用户看到的内容,并且JS对象在代码中跟踪它,为什么还需要第二个JS对象?
事实上,我建议尝试完全删除JS对象,并跟踪dom中的所有内容,并在需要时将其转换为JS。除非有令人信服的理由(有时候性能是原因 - 操纵DOM是JS中最大的杀手)。
也许我在你的用例中遗漏了一些东西......