2013-02-04 51 views
2

我有兩個連接的可排序,在這些工作之間拖動很好。我需要一次拖動多個項目,所以我使用以下方法進行工作,將所選項目附加到event.item。jquery用戶界面可排序多個項目幾乎可以工作,但剩下一個問題

$(this).sortable({ 
     connectWith: ".stage-content", 
     placeholder: 'placeholder', 
     start: function(ui, e) { 
      e.item.siblings(".selected").appendTo(e.item); 
.... 

我想不通,如果沒有懸停在兩個放置區中的一個問題,佔位符,我拖着元素中結束。如果此時放手,他們會消失。

HierarchyRequestError:節點不能在指定點的層次

這是非常合情合理的插入,但我不知道解決的辦法是什麼,任何幫助表示讚賞!

http://jsfiddle.net/mstefanko/kxBUG/

回答

1

在底部是一個例子的jsfiddle。希望這可以幫助。

$(document).ready(function(){ 
       $(".droppable").droppable({ 
        drop: function(event, ui) { 
         var $list = $(this); 
         $helper = ui.helper; 
         $($helper).removeClass("selected"); 
         var $selected = $(".selected");     
         if($selected.length > 1){      
          moveSelected($list,$selected); 
         }else{ 
          moveItem(ui.draggable,$list); 
         }          
        }, tolerance: "touch" 
       }); 

       $(".draggable").draggable({ 
        revert: "invalid", 
        helper: "clone", 
        cursor: "move", 
        drag: function(event,ui){ 
         var $helper = ui.helper; 
         $($helper).removeClass("selected"); 
         var $selected = $(".selected"); 
         if($selected.length > 1){ 
          $($helper).html($selected.length + " items"); 
         }          
        } 
       }); 

       function moveSelected($list,$selected){ 
        $($selected).each(function(){ 
         $(this).fadeOut(function(){ 
          $(this).appendTo($list).removeClass("selected").fadeIn(); 
         });     
        });    
       } 

       function moveItem($item,$list) { 
        $item.fadeOut(function() { 
         $item.find(".item").remove(); 
         $item.appendTo($list).fadeIn(); 
        }); 
       } 

       $(".item").click(function(){ 
        $(this).toggleClass("selected"); 
       }); 

      }); 

http://jsfiddle.net/caferdo/k5XJv/3/

0

你應該啓動功能添加$(YOUR SORTABLE OBJECT).sortable("refresh")

$(this).sortable({ 
     connectWith: ".stage-content", 
     placeholder: 'placeholder', 
     start: function(ui, e) { 
      e.item.siblings(".selected").appendTo(e.item); 
      $(YOUR SORTABLE OBJECT).sortable("refresh");} 
... 
相關問題