3

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

此外,我遵循了 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>
4

2 回答 2

3

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

$( '#droppable1' ).droppable({
      accept: '#draggable',
      drop: function(event, ui)
      {
        $(this)
          .append(ui.draggable.css({position: 'relative', left: '0px', top: '0px'}));
      }
    });
于 2013-10-08T15:17:43.677 回答
2

您可以将克隆helper用于可拖动选项,而不是在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/

于 2013-10-08T15:39:58.210 回答