Как сделать droppable для родительского и дочернего div с помощью пользовательского интерфейса jquery?

#jquery #jquery-ui #drag-and-drop #jquery-ui-draggable #jquery-ui-droppable

Вопрос:

Я хочу перетащить элемент и поместить его на дочерний элемент, который является droppar, используя пользовательский интерфейс jquery.

Здесь Div-1 ,Div-2 и столбец являются перетаскиваемым элементом.Их можно сбросить в div(Сбросьте здесь).Я бросил колонку в div(Бросьте здесь).Затем я хотел добавить еще один div в колонку .Но они не могли упасть там.

Вот HTML-код..

 <div id="draggable1" class="div">
  <p>Div-1</p>
</div>
<div id="draggable2" class="div">
  <p>Div-2</p>
</div>
<div id="column" class="div">Column</div>

<div id="droppable">
  <p>Drop here</p>
</div>
 

И часть jquery…

 $(function () {
    $("#draggable1").draggable({
      helper: "clone",
    });
    $("#draggable2").draggable({
      helper: "clone",
    });
    $("#column").draggable({
      helper: "clone",
    });
    $("#column").droppable({
      drop: function (event, ui) {
        $("#droppable").droppable("disable");
        var columnItem = $(ui.draggable).clone();
        console.log(columnItem);
        $(this).append(columnItem);
      },
    });
    $("#droppable").droppable({
      drop: function (event, ui) {
        var droppedItem = $(ui.draggable).clone();
        console.log(droppedItem);
        $(this).append(droppedItem);
      },
    });
  });
 

Ответ №1:

Я думаю, что лучший способ-использовать жадный вариант droppable. Не забудьте пройти через API, если вы обнаружите какие-либо проблемы.

http://api.jqueryui.com/droppable/#option-greedy

Вот как выглядит ваш код с опцией жадности:

 $(".child").droppable({ 
    accept: '.item',
    greedy: true,
    drop: function(e, ui){ 
     alert("drop on child");
    }
});
 

Вот ты где… !!!