javascript - sort() 函数不起作用

标签 javascript jquery

问题肯定不是出在函数上,而是如下面的代码所示,需要点击两次才能按降序~增长排序。我该如何解决这个问题?

Here is a jsFiddle example.

我认为错误在于:

function lxp(a, b){
    var adate = new Date($(a).attr("data-date"));
    var bdate = new Date($(b).attr("data-date"));
    if(tipo == 'acrescente'){
        return adate > bdate ? -1 : 1;
    }else if(tipo == 'decrescente'){
        return adate > bdate ? 1 : -1;
    }
}

最佳答案

这对我来说似乎是最直接的方法:

http://jsfiddle.net/3T5kN/11/

$(function(){
    var tllp = 15;
    $('#blocoSite li').each(function(i, lep){
        $(lep).css({ top : tllp });
        tllp += 15;
    });
});

$(document).ready(function() {

    var tipo = "decrescente";
    $('#ordeData').click(function() { 
        tipo = tipo == "acrescente" ? "decrescente" : "acrescente"
        var nposY = 0;

        function lxp(a, b){
            var adate = new Date($(a).attr("data-date"));
            var bdate = new Date($(b).attr("data-date"));

            if(tipo == 'acrescente'){
                return adate > bdate ? -1 : 1;
            }else if(tipo == 'decrescente'){
                return adate < bdate ? -1 : 1;
            }
        }

        $("#blocoSite li").sort(lxp).each(function(i, el){
            nposY = i * 15;

            $(this).animate({
                left: 200,
                top :  nposY
            }, 800);
        });

    })
})

附带 HTML

<ul id="blocoSite">
    <li data-date="2010-05-12">2010</li>
    <li data-date="2012-05-12">2012</li>
    <li data-date="2015-05-12">2015</li>
    <li data-date="2008-05-12">2008</li>
    <li data-date="2009-05-12">2009</li>
    <li data-date="2010-05-12">2010</li>
</ul>
<button id="ordeData">CLICK</button>

关于javascript - sort() 函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16863911/

相关文章:

javascript - 动态高度不工作 Javascript

javascript - 默认显示第一个容器

javascript - 将文本换行以适合矩形 : raphael

javascript - 获取 anchor 的特定文本 - jquery

javascript - 在 AngularJS 中定义初始应用程序 - 参数 'fn' 不是函数,得到字符串

javascript - 转换带有对象的数组以进行操作

javascript - jQuery Mobile - 如果选择输入,则固定标题更改大小

jquery - 使用 jquery ajax 简写时如何将全局事件设置为 false?

jquery - MySQL 随机函数的无限滚动问题?

javascript - 通过 AJAX 加载的 HTML 内容会乱序加载外部 JavaScript