jQuery draggable掉落在2个droppables上。只需要一个

时间:2013-08-11 12:29:03

标签: jquery jquery-ui jquery-ui-draggable jquery-droppable

我在使用jQueryUI(最新版本)进行一些拖放时遇到了一些问题。

我有一个可拖动的,并不是那么特别。 我有2个丢弃位置,但他们不是亲子。

第一个droppable正好位于第二个droppable之上。 第二个droppable在一个可滚动的div中。当div稍微向下滚动时会出现问题。 当div滚动时,第二个droppable实际上向上移动,但这是隐藏的。

在Chrome中使用元素检查器,我可以看到它被突出显示。

现在,当我在第一个上放下一个拖拽时,两个可放置的投掷都会被解雇,但我只想要第一个投掷。

使用"贪婪:真实"似乎不起作用,很可能是因为他们不是亲子。

他们被解雇的顺序是可预测的。第一个(可见droppable)首先被激活,然后是第二个(你实际上看不到)。

有没有办法防止第二个droppable开火?

jsfiddle example

http://jsfiddle.net/vQuZf/1/

1 个答案:

答案 0 :(得分:0)

进一步了解它后,我发现目前有两种可能的解决方案:

1)移动页面上的元素是不再存在重叠的方式。这样你就不会得到“双降”。

2)在droppable中添加一些自定义代码,该代码在删除时也会运行。这应该在被删除的元素上标记上次删除的时间戳。另一个元素可以检查这个,如果它在X秒内被删除,它应该忽略掉落。

对于解决方案2,不同的实现是可能的,但它们在某种意义上都是相似的,第一个应该标记被删除的元素,以便第二个可以检查它。

在我的情况下,我选择了解决方案1,因为这是最好的解决方案,无论如何都是一个更好的页面布局。