0


希望我的标题不会太混乱。如果有更好的方法来命名我的问题,请告诉我。
我有 jQuery 函数将背景颜色应用于表中的奇数行,并在悬停时将颜色更改为红色。但是如果我动态编辑表格,我的 jQuery 就不再工作了。
我阅读了很多关于 JS 事件委托的内容,但找不到任何关于如何在没有实际事件的情况下完成这项工作的信息......

$(document).ready(function(){
    //add background-color to all odd rows
    //very important!!!
    $("#tab3 tbody tr:odd").css("background-color", "#DCF1FD");
    //change color on hover 
    //less important!!!     
    $("#tab3 tbody tr").hover(
      function () {
        $(this).css("color", "red");
      },
      function () {
        $(this).css("color", "#000");
      }
    );
});

有没有办法在我编辑表格后让它工作。

编辑:
这必须在 IE8 上工作

4

2 回答 2

1

delegate即使您动态更新表格行,在表格上使用 jQuery也能正常工作,因为事件附加到表格而不是表格的每一行。

$(document).ready(function(){
    $("#tab3 tbody tr:odd").css("background-color", "#DCF1FD");


    $("#tab3").delegate('tbody tr', 'hover', function(){
        $(this).css("color", "red");
      },
      function () {
        $(this).css("color", "#000");
    });
});

如果您要动态更新整个表,请使用它

$(document).delegate('#tab3 tbody tr', 'hover', function(){
        $(this).css("color", "red");
      },
      function () {
        $(this).css("color", "#000");
 });

您可以使用简单的 css 设置奇数行的背景颜色

#tab3 tbody tr:nth-child(odd)
{ 
   background: #DCF1FD; 
}
于 2011-08-16T20:32:52.100 回答
0

... 或者您可以只使用 CSS 来定义偶数行、奇数行和悬停状态的背景。先回答这个问题。(编辑:固定链接,它指向错误的 SO 线程)。

于 2011-08-16T20:44:54.493 回答