1

http://jsfiddle.net/xSQBw/は私の問題を示しています。ボックスを親からドラッグして親に戻すと、親が要素を受け入れることに注意してください。子がドラッグされている間、親のドロップ可能性を無効にする必要があります。次に、子がドロップされた後、ドロップ可能性を再度有効にする必要があります。

droppableのstart:メソッドとstop:メソッドを使用してみましたが、無効化/再有効化するための正しい要素を取得するのは難しい、厄介で、とにかく機能しませんでした。

ドロップ可能なハンドラーで私が試みていることの例を次に示します。

$('<fieldset />',
{
    id: login,
    level: self.levelValue,
    class: 'member ' + employeeClass,
}).appendTo('#columnWrapDiv')
  .droppable(
    {
        hoverClass: 'hovered',
        drop: function(event,ui) { /* removed */});

そして私のドラッグ可能:

 $('.class')
  .draggable(
  {
      containment: '#ttkanbanDiv',
      cursor: 'crosshairs',
      revert: true,
      opacity: 0.4,
      start: 
        function(ui)
        {
            var id = $($($(ui).attr('srcElement'))
                        .parents()
                        .find('.ui-droppable')[0]).attr('id');
            $('#' + id).removeClass('ui-droppable');
        },
      stop:
        function(ui)
        {
            $($($(ui).attr('srcElement'))
                .parents()
                .find('.ui-droppable')[0])
                .addClass('ui-droppable');
        },
      zindex: 'auto',
  });
4

1 に答える 1

2

そして修正: http: //jsfiddle.net/xSQBw/1/

それを機能させる特定のコード(irc.freenode.net #jqueryのShokyに感謝します):

$('#unassignedDiv,.member').droppable({
    hoverClass: 'hovered',
    accept: function(draggable) {
        draggable = draggable[0];
        var droppable = this;
        return !$.contains(droppable, draggable);
    },
    drop: ...
于 2012-07-26T00:24:31.873 に答える