2009-07-03 22 views
0

我正在寻找提供网格内行的悬停状态的最佳执行脚本。用户JQuery - 突出显示网格行的最佳实践

90%具有IE6客户因此我不能依靠CSS:悬停

网格是一个标准表中,某些细胞具有内部表。

我最初开始使用带有mouseover和mouseout的.live方法,但是当将事件委托给文档鼠标悬停时,将鼠标悬停在没有网格的页面部分上时,会产生大量的cpu影响。

我不想绑定到每个单独的tr。

目前我在tbody上使用事件委托,并使用.parents方法获取目标节点树中的最后一个表格行。由于这个原因,我无法使用最接近的('tr')。

粗糙当前实现:

//event hookup 
$('table.grid>tbody') 
    .mouseover(rowenter) 
    .mouseout(rowleave); 

function rowenter(ev){ 
    ev.stopPropagation(); 
    var $parentTr = $(ev.target).parents('tr:last'); 
    if (! $parentTr.is('.hover')){ 
     $parentTr.addClass('hover'); 
    } 
} 

任何更好的实现的欢迎。

+0

他们为什么还在使用IE6?多么浪费时间。写入页面与IE6兼容的人越少越好。将这些人踢进未来。 – Sneakyness 2009-07-26 09:39:36

+0

政府用户,将花费£百万,以方便升级 – redsquare 2009-07-26 11:32:07

+0

其实,我没有投票这个,但我很感激你去下投票我所有的问题和答案:) – doomspork 2009-08-13 18:03:39

回答

-1

从我的问题的解决方案是最快的实施 - 使用本机事件委派。

2

在所有现代浏览器除了IE6你可以用CSS做到这一点:

tr:hover (background-color:yellow) 

这应该让周围所有的性能问题。