替代JQuery隐藏节目?还是Jquery更新?

时间:2009-12-10 09:47:02

标签: jquery sorting

我差不多完成了一个隐藏对象和排序的表..

$(".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();                                         
});

这样做的问题是,在完成排序时会有一个可见的“轻弹”,因为您可以看到内容显示和隐藏。有没有办法重新计算隐藏的项目然后“刷新”当前表,以便它只显示它需要的那些没有“轻弹”。

2 个答案:

答案 0 :(得分:0)

您可以隐藏整个表格进行更改,然后再次显示表格。您可以通过在顶部淡入div然后在排序完成后再将其淡出来实现此目的。这需要在进程完成后再调用表分类器之前。

答案 1 :(得分:0)

如果你只是不想隐藏它,那么删除隐藏命令......我假设你不只是这样做,你正在寻找'中间地带'。

一个简单的答案仍会让它消失/重新出现,就是把表放在div中,只需将sort事件中div的高度设置为当时的高度(EG:$(this).parent().height($(this).parent().height()); ),然后一旦你完成排序,让它回到正常的高度设置(EG:$(this).parent().height('auto');。这将防止其他页面内容在你隐藏表行时上下移动,这通常是最明显的发生任何闪烁的部分。您还可以考虑在该div上设置一个CSS类,这会导致出现某种排序图像/动画,以使用户确信他们的桌子会回来。