我有这个功能,当光标经过并关注每个 tr 的点击时,我用它来悬停和关注两个表格中的每一行。 它工作得很好,但我对 IE 有疑问,因为速度变慢了,我不明白为什么。谁能告诉我如何提高此功能的性能?
检查实例:http://mainpage.ueuo.com/
function rowSelection(){
var rows = $('.interactive tr');
rows.click(function () {
var i = $(this).GetIndex() + 1; // nth-child is 1-based
rows.removeClass('selectedRow');
rows.filter(':nth-child(' + i + ')').addClass('selectedRow');
});
rows.hover(function(){
var i = $(this).GetIndex() + 1;
rows.filter(':nth-child(' + i + ')').addClass('hoverx');
},function(){
rows.removeClass('hoverx');
});
};
jQuery.fn.GetIndex = function(){
return $(this).parent().children().index($(this));
}
谢谢。
最佳答案
您不能改用基于 CSS 的悬停吗?这会在所有浏览器中表现更好,尤其是 IE。
.interactive tr:hover td {
background: lime !important;
}
如果你想坚持使用 JavaScript/jQuery,那么我建议你摆脱这个:
<meta http-equiv="X-UA-Compatible" content="IE=8">
这是强制 IE 使用 IE8 模式。 IE8 模式比 IE9 模式慢。
关于jQuery 函数在 IE 上的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10294502/