在js中维护元素组之间关系的最佳实践
Best practice for maintaining relationships in js between groups of elements
所以您有一个列表和另一个列表。一个用于导航,另一个用于元数据。
现在的想法是,用户将添加、重新排序和删除导航列表中的项目,并且应该更新元列表以反映导航列表中发生的事情。通过向导航列表添加一个项目,一块HTML被附加到元列表中。
请记住,我将使用jQuery。
因此,我所质疑的是在元素集合之间建立关系的最佳方式。现在我意识到我可以使用索引和:eq()等,但在一个有很多容器的复杂实现中,事情可能会变得棘手。。。几个月或几年后回来进行维护可能会很痛苦。
只是想知道人们是否有建立明确关系的建议。将id存储在隐藏字段中?某种主数组?
您对此的思考方式可能会产生一些看起来像意大利面条的代码。我强烈建议您看看像backbone.js<http://documentcloud.github.com/backbone/>Backbone有一个强大的事件模型,可以让一块UI代码轻松地将事件广播给其他块UI代码。
使用主干,您可以使用一个模型来跟踪项目的状态。然后,您可以让模块化视图"订阅"来添加/删除/更改模型上的事件。
Backbone实际上是为了解决您在应用程序中面临的问题而构建的:"我如何跟踪所有对象的状态?当它们发生变化时,我如何跟踪后续的UI变化?"
希望这能帮助
Hrm,我认为您可能会使其变得更加复杂。如果您让DOM部分跟踪用户看到的内容,而JS对象在代码中跟踪它,那么为什么需要第二个JS对象呢?
事实上,我建议尝试完全删除JS对象,并跟踪dom中的所有内容,只在需要时将其转换为JS。除非有令人信服的原因(有时性能是原因——操纵DOM是JS中最大的杀手)。
也许我在你的用例中遗漏了什么。。。
- 在localhost Dev Box上测试JSONP请求的最佳方式
- 有条件更新d3.js力图中节点的最佳方法
- 为react组件传递道具的最佳方式
- 气质的“nestRemoting()”有时可以'找不到关系
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 让Webpack管理Quirky AMD定义的最佳方式
- 如何在Parse中创建一对多关系
- 在承诺链中处理早期回报的最佳方式
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- Angularjs 1.5.x本地化最佳实践
- 处理浮点错误的最佳方法是什么
- Ext.js从json构建模型关系的问题
- javascript导入的最佳实践是什么
- MobileFirst:在客户端运行计时器作业-最佳选项
- 当一个模型在骨干关系中被销毁时,销毁相关模型的最佳方法是什么?
- 负载角度依赖关系之间的区别是什么,共享模块的最佳方式是什么
- 在js中维护元素组之间关系的最佳实践
- 分发带有依赖关系的可重用JavaScript模块的最佳方式是什么?
- 描述JavaScript中成员和容器之间关系的最佳术语
- 记录javascript库依赖关系的最佳实践