jQueryUI多个可放置元素

时间:2013-10-08 15:13:14

标签: javascript jquery jquery-ui

为什么当我将draggable div拖到droppable1 div时,它总是放在droppable2 div中。

此外,我遵循了jQuery UI snap-back选项,但它不起作用。我怎么能做到这一点,而不是拖动实际的draggable元素,它拖动它的实例/副本,让droppable接受这些draggable个元素的多个。

<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<script>
  $(function() {
    $( '#draggable' ).draggable();

    $( '#droppable1' ).droppable({
      drop: function(event, ui)
      {
        $(this)
          .append(ui.draggable.css({position: 'relative', left: '0px', top: '0px'}));
      }
    });

    $( '#droppable2' ).droppable({
      drop: function(event, ui)
      {
        $(this)
          .append(ui.draggable.css({position: 'relative', left: '0px', top: '0px'}));
      }
    });



  });
</script>

<div class="well">
  <div id="draggable">CONTENT</div>
</div>

<div id="droppable1" class="well col-md-3" style="z-index:-1;"></div>
<div id="droppable2" class="well col-md-9" style="z-index:-1;"></div>

2 个答案:

答案 0 :(得分:3)

您可以使用接受过滤器接受特定可投放区域中的特定项目。

$( '#droppable1' ).droppable({
      accept: '#draggable',
      drop: function(event, ui)
      {
        $(this)
          .append(ui.draggable.css({position: 'relative', left: '0px', top: '0px'}));
      }
    });

答案 1 :(得分:2)

您可以使用克隆helper作为draggable选项,而不是drop事件克隆,并附加已删除的帮助程序。

代码:

$(function () {

    $('#draggable').draggable({
        helper: 'clone'
    });

    $('#droppable1, #droppable2').droppable({
        drop: function (event, ui) {
            $(this)
                .append(ui.helper.clone(false).css({
                position: 'relative',
                left: '0px',
                top: '0px'
            }));
        }
    });

});

演示:http://jsfiddle.net/IrvinDominin/v3L7A/