【问题标题】:tinysort jquery sort on two itemstinysort jquery对两个项目进行排序
【发布时间】:2012-04-16 23:00:18
【问题描述】:

我想同时按距离和名称进行排序。

(id) ----name----  ----distance----
  1     store           2
  2     shop            3
  3     market          1
  4      bazaar         2

#view
<ul id="xanim">
    <% @objects.each do |obj| %>
        <li><h3><%= obj.distance %></h3><%= obj.distance %>
    <% end %>
</ul>

使用 tinysort (http://tinysort.sjeiti.com)

#javascript
var $Ul = $('ul#xanim');
$Ul.css({position:'relative',height:$Ul.height(),display:'block'});
var iLnH;
var $Li = $('ul#xanim>li');
$Li.each(function(i,el){
    var iY = $(el).position().top;
    $.data(el,'h',iY);
    if (i===1) iLnH = iY;
});
$Li.tsort('h3:eq(0)',{order:'asc'}).each(function(i,el){
    var $El = $(el);
    var iFr = $.data(el,'h');
    var iTo = i*iLnH;
    $El.css({position:'absolute',top:iFr}).animate({top:iTo},500);
});

仅按一列排序(例如,仅按距离排序:市场、商店、集市、商店)。但是,如果两个距离相等,我还想按名称排序(例如,距离然后名称:市场、集市、商店、商店)。

如果第一个组件相等,我如何按次要组件排序?

【问题讨论】:

    标签: jquery ruby-on-rails jquery-ui sorting jquery-plugins


    【解决方案1】:

    您需要一个稳定的排序算法 (http://www.algorithmist.com/index.php/Stable_Sort)。首先按您的次要组件(名称)排序,然后按主要组件(距离)。稳定排序会确保距离相同的元素仍然按名称排序。

    【讨论】:

      【解决方案2】:

      在 tinysort 中还不能进行多重排序。但它会是:http://code.google.com/p/tinysort/issues/detail?id=23

      有一天:/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多