【问题标题】:Sort on multiple values with List js使用 List js 对多个值进行排序
【发布时间】:2013-12-22 16:49:47
【问题描述】:

试图让list.js 插件对多个值进行排序。 IE。它应该首先按类别排序,然后按字母顺序对类别中的标题进行排序。

这是一个演示:
http://jsfiddle.net/8E7cH/

适用于 Safari 和 Firefox。但在 Chrome 中却没有。

HTML

<ul>
    <li class="category">
        <span class="sort">Category</span>
    </li>
</ul>


<main id="articlelist">
    <ul class="list"><li>
            <span class="category">Design</span> 
            <span class="overflow">
                <a class="title" href="http://someurl.com/adventure-gear/">Adventure gear</a>
            </span>
        </li><li>
            <span class="category">Architecture</span> 
            <span class="overflow">
                <a class="title" href="http://someurl.com/djennes-mud-mosque/">Djenné’s Mud Mosque</a>
            </span>
        </li><li>
            <span class="category">Cities</span> 
            <span class="overflow">
                <a class="title" href="http://someurl.com/edge-city-sao-paulo/">Edge City (São Paulo)</a>
            </span>
        </li><li>
            <span class="category">Cities</span> 
            <span class="overflow">
                <a class="title" href="http://someurl.com/istanbul/">Istanbul</a>
            </span>
        </li><li>
            <span class="category">Cities</span> 
            <span class="overflow">
                <a class="title" href="http://someurl.com/jenin/">Jenin</a>
            </span>
        </li><li>
            <span class="category">Architecture</span> 
            <span class="overflow">
                <a class="title" href="http://someurl.com/previ/">PREVI</a>
            </span> 
        </li><li>
            <span class="category">Cities</span> 
            <span class="overflow">
                <a class="title" href="http://someurl.com/rebuilding-beirut/">Rebuilding Beirut</a>
            </span>
        </li><li>
            <span class="category">Architecture</span> 
            <span class="overflow">
                <a class="title" href="http://someurl.com/revolutionary-housing-argentina/">Revolutionary housing in Argentina</a>
            </span>
        </li><li>
            <span class="category">Cities</span> 
            <span class="overflow">
                <a class="title" href="http://someurl.com/shenzhen/">Shenzhen</a>
            </span>
        </li><li>
            <span class="category">Architecture</span> 
            <span class="overflow">
                <a class="title" href="http://someurl.com/high-line/">The High Line</a>
            </span>
        </li><li>
            <span class="category">Cities</span> 
            <span class="overflow">
                <a class="title" href="http://someurl.com/unreal-estate-london/">Unreal Estate (London)</a>
            </span>
        </li>
     </ul>
</main>  


JS

var articleList = new List('articlelist', {valueNames:  [ 'category', 'title' ]});

$('span.sort').click(function() {
        articleList.sort('title', { asc: true })
        articleList.sort('category', { asc: true }) 
});

【问题讨论】:

  • 我刚刚在Chrome浏览器上试了一下,运行正常!
  • 真的吗?什么平台?我在 OSX 上,版本为 31.0.1650.63。按类别给我这个(不是按字母顺序排列的标题)i.imgur.com/NyNmZlj.png

标签: javascript jquery list google-chrome sorting


【解决方案1】:

试试这个:

var articleList = new List('articlelist', {valueNames:  [ 'category', 'overflow' ]});

$('span.sort').click(function() {
        articleList.sort('overflow', { asc: true })
        articleList.sort('category', { asc: true }) 
});

我认为你必须使用标签span的class属性值。

【讨论】:

  • 稍微好一点,但你可以反复按按钮,它会继续“排序”jsfiddle.net/C3VfG
  • 我刚刚编辑了我的答案,重复排序解决了,但我认为它根据&lt;span&gt;标签内所有内容的值对列表进行排序,即&lt;a ....&gt; &lt;/a&gt;跨度>
  • @INT 我认为插件 Listjs 无法对多个值的列表进行排序!
  • 我也这么认为。实际上是用 Tiny Sort 代替的。 tinysort.sjeiti.com
  • 您需要传递自己的排序函数,然后才能指定排序操作的行为方式:github.com/javve/list.js/issues/193
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-20
  • 2017-12-11
  • 1970-01-01
  • 2015-01-02
  • 2010-09-26
相关资源
最近更新 更多