0

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

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

第一个 droppable 在第二个的正上方。第二个 droppable 在可滚动的 div 内。当该 div 向下滚动一点时,就会出现问题。当 div 滚动时,第二个 droppable 有效地向上移动,但这是隐藏的。

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

现在,当我将一个可拖动对象放在第一个对象上时,两个可拖放对象都会被触发,但我只希望第一个对象触发。

使用“greedy:true”似乎不起作用,很可能是因为他们不是亲子。

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

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

jsfiddle example

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

4

1 回答 1

0

经过进一步研究,我发现目前有两种可能的解决方案:

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

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

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

就我而言,我选择了解决方案 1,因为它是最好的解决方案,结果证明它是更好的页面布局。

于 2013-08-18T09:18:49.517 回答