2013-03-26 132 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