4

我有这个功能,当光标经过时,我用它来悬停并聚焦两个表格中的每一行,并聚焦于每个 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));
}

谢谢你。

4

2 回答 2

1

你不能使用基于 CSS 的悬停来代替吗?这将在所有浏览器中表现得更好,尤其是 IE。

.interactive tr:hover td {
    background: lime !important;
}

如果你想坚持使用 JavaScript/jQuery,那么我建议你摆脱这个:

<meta http-equiv="X-UA-Compatible" content="IE=8">

这迫使 IE 使用 IE8 模式。IE8 模式比 IE9 模式慢。

于 2012-04-24T08:56:25.573 回答
0

尝试这个

$(document).ready(function(){

 $(".interactive tr").hover(function() {
   $(this).addClass("hoverx");
    }, function() {
   $(this).removeClass("hoverx");
  });

 $(".interactive tr").click(function() {
  $(".interactive tr.selectedRow").removeClass("selectedRow");
     $(this).addClass("selectedRow");
  });​ 
});
于 2012-04-24T08:54:29.660 回答