Javascript 在jQuery中使用sort()函数
当我在单击事件上使用jQuery的Javascript 在jQuery中使用sort()函数,javascript,jquery,Javascript,Jquery,当我在单击事件上使用jQuery的sort()函数按的日期组织它时,排序只在第一次起作用。然后,在下一次单击中,以随机顺序排列。有人能帮我解决这个问题吗 function orderDate(tipo){ var nposX = 0; var nposY = 0; if(tipo == 'acrescente'){ $("#ordeData").attr({'onclick' : 'orderDate("decrescente");'}); }e
sort()
函数按
的日期组织它时,排序只在第一次起作用。然后,在下一次单击中,
以随机顺序排列。有人能帮我解决这个问题吗
function orderDate(tipo){
var nposX = 0;
var nposY = 0;
if(tipo == 'acrescente'){
$("#ordeData").attr({'onclick' : 'orderDate("decrescente");'});
}else if(tipo == 'decrescente'){
$("#ordeData").attr({'onclick' : 'orderDate("acrescente");'});
}
function lxp(a, b){
alert($(a).html());
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){
$("#blocoSite li").each(function(is, els){
nposX = $(els).offset().left;
nposY = $(els).offset().top;
if(i == is){
return false;
}
});
$(this).animate({
left: nposX,
top : nposY
}, 800);
});
}
功能订单日期(tipo){
var-nposX=0;
var-nposY=0;
如果(tipo=='acrescente'){
$(“#ordeData”).attr({'onclick':'orderDate(“decrescente”);');
}否则,如果(tipo=='decrescente'){
$(“#ordeData”).attr({'onclick':'orderDate(“acrescente”);');
}
函数lxp(a,b){
警报($(a.html());
var adate=新日期($(a).attr(“数据日期”);
var bdate=新日期($(b).attr(“数据日期”);
如果(tipo=='acrescente'){
返回日期>b日期?-1:1;
}否则,如果(tipo=='decrescente'){
返回日期
而不是if/else
使用attr
分配点击事件时,您应该执行:$(“#ordeData”)。点击(函数(){orderDate(tipo);})你能在上面设置一些示例标记和脚本吗?@Paulpro:不,你需要使用。否则,您会将侦听器堆积起来,并最终陷入一个混乱的自上而下的排序中。@DouglasSilva:您知道.sort()
只会对当前集合进行重新排序,而不会对DOM中的节点进行重新排序吗?@Bergi:那么他会命令一次吗?