问题肯定不是出在函数上,而是如下面的代码所示,需要点击两次才能按降序~增长排序。我该如何解决这个问题?
我认为错误在于:
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;
}
}
最佳答案
这对我来说似乎是最直接的方法:
$(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/