【发布时间】:2011-02-26 18:38:15
【问题描述】:
背景:我创建了一个在线电路设计应用程序,其中 .draggable() div 标签是包含较小 div 容器等的容器。
问题:对于任何特定的 div 标签,我需要快速识别它是否包含其他 div 标签(可能又包含其他 div 标签)。
--> 由于 div 标签是可拖动的,因此在 DOM 中它们不会相互嵌套,但我认为它们是绝对定位的。
所以我认为“命中测试”方法是确定收容的唯一方法,除非有一些内置的“秘密”例程可以帮助解决这个问题。
我搜索了 JQuery,但没有看到任何内置例程。有谁知道比 O(n^2) 更快的算法吗?
似乎我必须在外循环(n)中遍历 div 标签列表,并有一个内循环(另一个 n)来与所有其他 div 标签进行比较并进行“包含测试”(位置、宽度、高度),构建包含的 div 标签列表。这是n平方。然后我必须通过连接包含的列表来构建所有嵌套 div 标签的列表。所以总数是 O(n^2)+n。
一定有更好的办法吗?
【问题讨论】:
-
div 没有嵌套有什么关键原因吗?
-
我正在使用 JQuery div.draggable() 以便可以在工作区周围拖动电路组件。如果我将一个标签拖到另一个标签中,我不相信 draggable() 会在物理上嵌套 div 标签。
标签: javascript jquery graphics html