2014-09-22 78 views
0

我想拖放一個容器內的元素。該容器將具有可拖動元素可以被丟棄的子容器。雖然當我拖動子容器內的元素時,該元素將附加到主容器而不是子容器。jQuery UI drop在droppable兒童內

在藍色div內拖動紅色div,然後將紅色容器內的紫色div拖到剛纔追加到藍色div中。

它反而追加到主容器,而不是紅色的,你把它放在頂部。

我該如何將紫色的div追加到藍色的div或紅色的div取決於你放棄了哪個div?

回答

2

嵌套droppables(貪婪在這裏非常重要):

/* drop on page canvas */ 
$("#drop").droppable({ 
    accept: ".inside-drag, .drag", 
    drop: function (event, ui) { 
     var target = $(event.target); 
     var dropped = $(ui.draggable).clone().appendTo(target); 
     if (dropped.hasClass('drag')) { 
      dropped.droppable({ 
       accept: ".inside-drag", 
       greedy: true, 
       drop: function (event, ui) { 
        var target = $(event.target); 
        $(ui.draggable).clone().appendTo(target); 
       }, 
      }); 
     } 
    }, 
}); 

Demo

+0

這工作。雖然我忘了提及每個紅色div有3個部分,但我想實際將其放在紅色部分中,具體取決於放置部分,而不是紅色部分本身。 – UserDy 2014-09-23 03:31:28

+0

你能提供更多細節嗎?什麼意思是「紅色分區有3個部分」?你想捕捉紫色格子掉落的位置嗎? – 2014-09-23 05:06:25

+0

不,我只是想將div附加到拖動和放置元素(紅色div)內的部分Heres我的意思是http://codepen.io/anon/pen/eoEdK我想將元素放入紅色的div。 – UserDy 2014-09-23 05:09:32