2013-04-04 64 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