2014-09-22 80 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