2013-03-26 55 views
0

我完全被困在試圖讓一個UL排序和更新功能排序中(隱藏)與項目在ULjQuery UI的.sortable()觸發選擇排序

這裏是新訂單選擇我的功能

jQuery(document).ready(function ($) { 
function sort() { 
    $('.element').sortable({ 
     update: function (event, ui) { 
      var draggingElement = $('.item'); 
      draggingElement.each(function() { 
       var ordering = $(this).index(); 
       var option = 'opt' + ordering + ''; 
       $("#list").find('#' + option + '').index(ordering); 
      }); 
     } 
    }); 
}; 
sort(); 
}); 

和here's我的HTML

<ul class="element"> 
    <li class="item">0</li> 
    <li class="item">1</li> 
    <li class="item">2</li> 
    <li class="item">3</li> 
</ul> 
<select name="list1" multiple="true" class="list_hidden" id="list"> 
    <option id="opt0" selected="selected" value="0">0</option> 
    <option id="opt1" selected="selected" value="1">1</option> 
    <option id="opt2" selected="selected" value="2">2</option> 
    <option id="opt3" selected="selected" value="3">3</option> 
</select> 

我真的鴕鳥政策知道該怎麼辦,我也tryed作出的選項數組,排序和它們添加到選擇但我想s我總試錯了

也許有人已經解決了這個問題?

的選擇必須是一個多=真

繼承人小提琴想象我的問題

http://jsfiddle.net/JKjD5/4/

在此先感謝,對任何暗示

回答

1

你可以做這:(工作但未優化)

jQuery(document).ready(function ($) { 
    function sort() { 
    $('.element').sortable({ 
    update: function (event, ui) { 
     var draggingElement = $('.item'); 
     $("#list").empty(); 
     draggingElement.each(function() { 
     $("#list").append($('<option />').attr('id','opt'+$(this).text()).attr('value',$(this).text()).attr('selected', 'selected').text($(this).text())); 
    }); 
    } 
}); 
}; 
sort(); 
}); 

現在,它的工作原理Fiddle

如果你願意,你可以將某些data存儲到li清單,排序函數中使用它們,如:

<li class='item' data-rel='opt45' data-value='123' >text</li> 

和檢索他們是這樣的:(以排序功能)

$(this).attr('data-value'); 
+0

yeaaah,那是相當不錯的工作的.each =)使用 – 2013-03-26 15:11:33

+0

i'm它升ike this now http://jsfiddle.net/JKjD5/8/ – 2013-03-26 15:19:30

+0

很好,是不是你正在尋找? – JoDev 2013-03-26 15:23:37

相關問題