首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于未嵌套的“可拖动”div标签: JQuery/JavaScript div标签“包含”方法/算法?

对于未嵌套的“可拖动”div标签: JQuery/JavaScript div标签“包含”方法/算法?
EN

Stack Overflow用户
提问于 2010-06-02 19:10:21
回答 2查看 648关注 0票数 0

背景:我已经创建了一个在线电路设计应用程序,其中.draggable() div标记是包含较小div容器的容器,等等。

问:对于任何特定的div标签,我需要快速识别它是否包含其他div标签(反过来可能包含其他div标签)。

-->因为div标签是可拖动的,所以在DOM中,它们不是嵌套在彼此内部的,但我认为它们是绝对定位的。

因此,我认为“命中测试”方法是确定包容性的唯一方法,除非有一些“秘密”例程可以帮助实现这一点。

我已经搜索了JQuery,但我没有看到任何内置的例程。有谁知道比O(n^2)更快的算法吗?

似乎我必须遍历外部循环(n)中的div标记列表,并有一个内部循环(另一个n)来与所有其他div标记进行比较,并进行“包含测试”(位置、宽度、高度),构建包含的div标记列表。这是n的平方。然后,我必须通过连接包含的列表来构建所有嵌套的div标记的列表。所以总数是O(n^2)+n。

一定有更好的办法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-02 21:15:09

除了"draggable“之外,我还会使用jQuery "droppable”。

这样,您就可以知道您将某些东西放在哪里,并可以相应地在DOM中重新定位该项。

看一下jQuery draggable + droppable: how to snap dropped element to dropped-on element (解释如何从原始位置删除拖放的元素并将其添加到拖放目标中)

票数 0
EN

Stack Overflow用户

发布于 2010-06-02 19:17:22

代码语言:javascript
复制
$.contains(DivContainer, LookForThisDiv);

示例:

代码语言:javascript
复制
jQuery.contains(document.documentElement, document.body); // true

文档:

$.contains()

编辑 ok,如果这些div不是嵌套的(只要读一读就知道了),这是一个很好的实用函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2957076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档