在js中维护元素组之间关系的最佳实践

Best practice for maintaining relationships in js between groups of elements

本文关键字:关系 最佳 之间 js 维护 元素      更新时间:2023-09-26

所以您有一个列表和另一个列表。一个用于导航,另一个用于元数据。

现在的想法是,用户将添加、重新排序和删除导航列表中的项目,并且应该更新元列表以反映导航列表中发生的事情。通过向导航列表添加一个项目,一块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中最大的杀手)。

也许我在你的用例中遗漏了什么。。。