2017-02-11 52 views
0

我感觉真的很愚蠢,因为这一个,但我认真无法弄清楚。见我有我的拖拽元素两个要求,我想从一个滚动侧面菜单移动到另一个DIV:jQuery droppable绝对定位和redraggable在同一时间

  • 我希望他们在这里我把它们
  • 位置被丢弃我想他们是可拖动一次,一旦他们丢弃

现在愚蠢的部分是,我设法实现这两个,但不知何故无法让他们在同一时间工作。

当我键入这个redragging工作完全正常,但拖格捕捉到左上:

jQuery('#droppable').droppable({ 
    accept: '.drag', 
    drop: function(e, ui) { 
     if (!ui.draggable.hasClass("dropped")) 
      jQuery(this).append(jQuery(ui.draggable).clone().addClass("dropped").draggable()); 
     } 
    }); 

但当我添加代码来定位它,但它确实是不错,但一旦它的下降,这是永远丢弃(原来也不能再次拖)

jQuery('#droppable').droppable({ 
    accept: '.drag', 
    drop: function(e, ui) { 
     if (!ui.draggable.hasClass("dropped")) 
      var parentOffset = jQuery('#droppable').offset(); 
      var dropped = jQuery(ui.draggable).clone().addClass("dropped").draggable(); 
      dropped.css('left', (ui.position.left - parentOffset.left) +'px'); 
      dropped.css('top', (ui.position.top - parentOffset.top) +'px'); 
     jQuery(this).append(jQuery(ui.draggable).clone().addClass("dropped").draggable()); 
     } 
    }); 

我有一种感觉,我在做一些非常基本的错误:) 谁能帮助我? 在此先感谢!

回答

1

好吧,明白了。如果有其他人有这个问题,这对我来说是这样的:

jQuery('#droppable').droppable({ 
    accept: '.drag', 
    drop: function(e, ui) { 
     var parentOffset = jQuery('#droppable').offset(); 
     var off = $(ui.draggable).clone().offset(); 


     if (!ui.draggable.hasClass("dropped")) 
      jQuery(this).append(jQuery(ui.draggable).clone().addClass("dropped").draggable().css({'position': 'absolute', 'left': (ui.position.left - parentOffset.left) + 'px', 'top': (ui.position.top - parentOffset.top) + 'px'})); 


     } 
    });