我差不多完成了一个隐藏对象和排序的表..
$(".ICS_BlueTable").tablesorter();
$(".ICS_BlueTable").bind("sortStart",function() {
$('.ICS_Artist_Hide',this).toggle();
$('tr',this).removeClass("ICS_Artist_Hide");
}).bind("sortEnd",function() {
$("tr:gt(4)", this).addClass("ICS_Artist_Hide");
$('.ICS_Artist_Hide',this).toggle();
});
这样做的问题是,在完成排序时会有一个可见的“轻弹”,因为您可以看到内容显示和隐藏。有没有办法重新计算隐藏的项目然后“刷新”当前表,以便它只显示它需要的那些没有“轻弹”。
答案 0 :(得分:0)
您可以隐藏整个表格进行更改,然后再次显示表格。您可以通过在顶部淡入div然后在排序完成后再将其淡出来实现此目的。这需要在进程完成后再调用表分类器之前。
答案 1 :(得分:0)
如果你只是不想隐藏它,那么删除隐藏命令......我假设你不只是这样做,你正在寻找'中间地带'。
一个简单的答案仍会让它消失/重新出现,就是把表放在div中,只需将sort事件中div的高度设置为当时的高度(EG:$(this).parent().height($(this).parent().height());
),然后一旦你完成排序,让它回到正常的高度设置(EG:$(this).parent().height('auto');
。这将防止其他页面内容在你隐藏表行时上下移动,这通常是最明显的发生任何闪烁的部分。您还可以考虑在该div上设置一个CSS类,这会导致出现某种排序图像/动画,以使用户确信他们的桌子会回来。