1

我有多个可拖动元素,我不希望它们被放在彼此之上。我希望拖动的元素在拖动时显示为浅绿色,但是一旦它超过具有特定类的元素,它就会变成红色。如果它被丢弃,它将恢复到原来的位置。

其他一切都很简单,但我需要一个事件来“输入”另一个元素。

我还没有找到任何集成功能或插件来解决我的问题。

除了记录所有元素的位置和大小,然后在拖动事件中与它们进行比较之外,我自己想不出任何其他方法来做到这一点。然而,它会很重,拖起来会很痛苦。

那么,有什么建议吗?可能是我没找到的插件?:)

4

1 回答 1

4

我怀疑插件是必要的。您还没有描述与使用 vanilla jQuery UI 已经可以处理的行为有任何不同的拖放行为。

据我了解,您有一堆具有共同目的的可拖动对象,但它们的可放置对象需要根据被拖动的对象进行更改。所需要的只是挂钩到可拖动对象的开始事件,并有条件地更改您希望它们使用的可放置对象的接受选项。

我自己运行一个快速测试,如果 jQuery UI 在可放置对象上,似乎不会再将任何 CSS 类插入到 draggable-helper 中,因此当它在可放置对象上时,您不能使用纯 CSS 来更改帮助器的颜色。

但是,您可以简单地使用 droppables 的overout方法在 draggable-helper 中添加和删除一个类,而不是挂钩到 draggable 的drag方法以不断监视它结束了哪个元素。由于您将在拖动开始时设置接受选项(如前所述),因此只会在您希望帮助器颜色更改的元素上调用over方法。

抱歉,我没有发布任何代码示例,但希望解释是有帮助的。

于 2009-07-27T07:07:36.593 回答