2015-04-02 49 views
0

領域的自動填充我有一個基本的排序列表jQuery的排序 - 當某些字段選擇

<ul id="sortable1" class="connectedSortable">   
    <li class="ui-state-default" id="1">1</li> 
    <li class="ui-state-default" id="2">2</li> 
    <li class="ui-state-default" id="3>3</li> 
    <li class="ui-state-default" id="a">a</li> 
    <li class="ui-state-default" id="b">b</li> 
    <li class="ui-state-default" id="c">c</li> 
</ul> 

    <div id="sortedFields"> 
     <ul id="sortable2" class="connectedSortable"></ul> 
    </div> 

工作正常。我想做什麼,但不知道如何,有一些領域依賴於其他領域。所以,如果我將字段「1」拖到「sortable2」,那麼字段「a」會自動置於「sortable2」中。如果我拖動「2」,「b」會自動置於「sortable2」中。

對此很新,所以不確定這是否可能,或者這是否非常容易。一直在尋找sortable site,但沒有彈出。

回答

1

聲明:我只是此答案的投遞人員,並未解決此問題。

我想解決它,但後來我發現有人不僅解決了它,而且還包含了一點金色鍍層(您也可以將其拖放到新的<ul>'s中)。

下面是從S.O.中找到的代碼。螺紋:Make draggable element sortable within droppable using jQuery UI

HTML:

<ul id="pool" class="connectedSortable"> 
    <li>foo1</li> 
    <li>foo2</li> 
    <li>foo3</li> 
</ul> 

<hr> 

<ul class="connectedSortable new"></ul> 

<ul class="connectedSortable new hidden"></ul> 

JS:

$(function() { 
    initSort($('.connectedSortable')); 
}); 

function initSort(element) { 
    element.sortable({ 
     connectWith: '.connectedSortable', 
     beforeStop: function(event, ui) { 
      var parent = ui.helper.parent(); 
      if(parent.hasClass('new')) { 
       parent.removeClass('new'); 
       var clone = $('.connectedSortable.new.hidden').clone(); 
       clone.insertAfter(parent).removeClass('hidden'); 
       initSort($('.connectedSortable')); 
      } 
      cleanUp(); 
     } 
    }).disableSelection(); 
} 

function cleanUp() { 
    $('.connectedSortable').not('.new, #pool').each(function() { 
     if($(this).find('li').length == 0) { 
      $(this).remove(); 
     } 
    }); 
} 

CSS:

ul { list-style: none; } 
li { cursor: pointer; } 

.connectedSortable { 
    border: 1px solid; 
    padding: 10px; 
} 

.connectedSortable.new { border: 1px dashed; } 

.hidden { display: none; } 

JSFIDDLE

+0

嗨,不知道如果我失去了一些東西,但我沒有看到h這就是我所問的嗎?就像那個你連接的小提琴一樣,沒有一個領域依賴於另一個領域。我需要做的是如果我點擊並拖動「foo1」,然後「foo3」會自動放在「foo1」的位置。 – ygetarts 2015-04-21 17:35:31

+0

嗯,我開始搞砸了你鏈接的JSFiddle,並且我想出了一些似乎可行的東西:https://jsfiddle.net/rngv2fow/3/。不知道這是否是最好的方式去做,但它似乎做我想要的。感謝您的鏈接 – ygetarts 2015-04-22 19:58:42