2012-02-01 70 views
0

我一直在做一个拖放解决方案,其中用户将能够从左侧元素列表中选择多个项目,并同时将它们拖到.sortable()根据this示例右侧区域。jQuery UI多重DnD重复问题

问题是,在用户选择并拖动多个项目后,通过拖动只有一个项目,单个项目将被复制。

这里有一个细目:

  • 用户点击多个项目,切换一个“选择”类
  • 用户拖动选择的项目之一,所有其他选定的项目跟踪 - 用户删除他们在一个容器中。
  • 用户然后拖动一个单一的项目,不切换'选定',在右边的容器,一旦删除,该项目是重复的。

我想过改变逻辑:

var selected = $('#ul-left .selected'); 
    if (selected.length === 0) { 
    selected = $(this); 
    } 
var container = $('<div></div>').attr('id', 'draggingContainer'); 
container.append(selected.clone()); 
return container; 

说类似(伪代码):

if(selected >= 1){ 
    proceed as written above 
} else { 
    set the helper property to clone (as if I would've done helper: 'clone',) 
} 

我不确定是否有一种方法做手工,此外,我不知道我什至在正确的方向看 - 所以为了我去:)

这是我的fiddle,

谢谢大家看看这个。 肯

回答

0

如果你改变你停止添加刷新它应该解决此问题:

stop:function (e, ui) { 
      $('#wrapper ul li').removeClass('selected').css({'background-color':'#FFD'}); 
      $('#ul-right').append(ui.helper.children()); 
      $('#ul-right').sortable('refresh');// add this line 
     }