2013-04-04 34 views
1

我有这个问题,使用jquery拖动&拖放。我有两个div元素堆叠在一起。底部的div可以放大并且更大。如果我在上面的div上放置一个项目,那么底部的div将处理dropp。在jquery拖放中停止放置事件

如何让div只在元素直接放在它上面时才处理放置。

我试过在上面的div上使用stopPropagation()但是没有工作。

somekind的简单的例子:http://jsfiddle.net/e87wS/13/

回答

1

编辑答案

使用overout禁用和启用其他分区。 greedy表示可投放区域将是唯一可用的区域,tolerance: touch意味着只要可拖动的对象正在触摸可投放区域,它就会落在那里。

它应该是这样的:

$('#div2').droppable({ 
    drop: function (event, ui) { 
     alert("droppedHere"); 
    }, 
    greedy: 'true', 
    tolerance: 'touch', 
    over: function (event, ui) { 
     $("#div1").droppable("disable") 
    }, 
    out: function (event, ui) { 
     $("#div1").droppable("enable") 
    } 
}); 

$('#div1').droppable({ 
    drop: function(event, ui){ 
     alert("droppedThere"); 
    } 
}); 

和小提琴:http://jsfiddle.net/e87wS/15/

+0

我需要的红色div来处理的下降。然后容差选项失败。 http://jsfiddle.net/e87wS/8/即使掉在绿地上,也能给你一个生气! – Jacob 2013-04-04 14:15:15

+0

你能解释一下为什么底部div处理掉吗?你是怎么做到的? – 2013-04-04 14:18:01

+0

假设要拖动的图片应放置在绿色的div上...当您将它拖动时,红色的div会接受它。我想要红色的div只有在拖出绿色div时才能接受它。 – Jacob 2013-04-04 14:19:31