1

我采用了 Chris Coyier 表格行和 col 突出显示代码并添加了斑马条纹。我可以使行突出显示,但启用斑马条纹时 col 停止突出显示。

如果您取消注释 jQuery 的第一 2 行以显示斑马条纹,您将看到我在上面概述的问题。

不完全确定为什么这些是冲突的。

任何帮助表示赞赏。

很抱歉所有代码都在这里,但似乎我无法使用 jsFiddle 向您展示,你知道,这是向您展示代码工作的非常有用的服务,因此您可以编辑和摆弄它。

CSS

table           {width:100%; border-collapse:collapse;}

    th          {background:#95bce2; color:white; font-weight:bold;}
    td, th      {padding:6px; border:1px solid #95bce2; text-align:left;}

.even           {background-color:#ecf6fc;}
.odd            {background-color:white;}

.hover          {background-color:#ccc!important;}
.focus          {background-color:#6ab9d0!important; color:white;}​

jQuery

/* If I uncomment these lines the colgroup highlight doesn't work */ 
//$('tr:odd').addClass('odd')
//$('tr:even').addClass('even')


$('.table1').delegate('td','mouseover mouseleave', function(e)
{
    if (e.type == 'mouseover')
    {            
        $(this).addClass('focus');
        $(this).parent().addClass('hover');
        $("colgroup").eq($(this).index()).addClass('hover');
    }
    else
    {
        $(this).removeClass('focus');
        $(this).parent().removeClass('hover');
        $('colgroup').eq($(this).index()).removeClass('hover');
    }
});

HTML

<table class="table1">
        <colgroup></colgroup>
        <colgroup></colgroup>
        <colgroup></colgroup>
        <colgroup></colgroup>
        <colgroup></colgroup>
        <colgroup></colgroup>
        <colgroup></colgroup>
        <colgroup></colgroup>
        <colgroup></colgroup>
        <colgroup></colgroup>
    <thead>
        <tr>
            <th>First Name</th>
            <th>Last Name</th>
            <th>Job Title</th>
            <th>Favorite Color</th>
            <th>Wars or Trek?</th>
            <th>Porn Name</th>
            <th>Date of Birth</th>
            <th>Dream Vacation City</th>
            <th>GPA</th>
            <th>Arbitrary Data</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>James</td>
            <td>Matman</td>
            <td>Chief Sandwich Eater</td>
            <td>Lettuce Green</td>
            <td>Trek</td>
            <td>Digby Green</td>
            <td>January 13, 1979</td>
            <td>Gotham City</td>
            <td>3.1</td>
            <td>RBX-12</td>
        </tr>
        <tr>
          <td>The</td>
          <td>Tick</td>
          <td>Crimefighter Sorta</td>
          <td>Blue</td>
          <td>Wars</td>
          <td>John Smith</td>
          <td>July 19, 1968</td>
          <td>Athens</td>
          <td>N/A</td>
          <td>Edlund, Ben (July 1996).</td>
        </tr>
        <tr>
          <td>Jokey</td>
          <td>Smurf</td>
          <td>Giving Exploding Presents</td>
          <td>Smurflow</td>
          <td>Smurf</td>
          <td>Smurflane Smurfmutt</td>
          <td>Smurfuary Smurfteenth, 1945</td>
          <td>New Smurf City</td>
          <td>4.Smurf</td>
          <td>One</td>
        </tr>
        <tr>
          <td>Cindy</td>
          <td>Beyler</td>
          <td>Sales Representative</td>
          <td>Red</td>
          <td>Wars</td>
          <td>Lori Quivey</td>
          <td>July 5, 1956</td>
          <td>Paris</td>
          <td>3.4</td>
          <td>3451</td>
        </tr>
        <tr>
          <td>Captain</td>
          <td>Cool</td>
          <td>Tree Crusher</td>
          <td>Blue</td>
          <td>Wars</td>
          <td>Steve 42nd</td>
          <td>December 13, 1982</td>
          <td>Las Vegas</td>
          <td>1.9</td>
          <td>Under the couch</td>
        </tr>
    </tbody>
</table>​
4

1 回答 1

2

为什么不使用 :hover 伪类作为选择器?您不需要(也不应该)使用 javascript 进行操作,如果您使用纯 css,即使禁用了 js,您也可以覆盖浏览器

对于偶数/奇数类,只需将类放在 php/html 文件或用户 css 规则中(如果您不关心旧浏览器)http://www.w3.org/Style/Examples/007/evenodd

table           {width:100%; border-collapse:collapse;}

th          {background:#95bce2; color:white; font-weight:bold;}
td, th      {padding:6px; border:1px solid #95bce2; text-align:left;}

tr:nth-child(even)           {background-color:#ecf6fc;}
tr:nth-child(odd)           {background-color:white;}

tr:hover, td.hover          {background-color:#ccc!important;}
td:hover          {background-color:#6ab9d0!important; color:white;}

colgroup 标签已弃用,因此您不应该使用它,您确实需要 js fot

$('.table1 td').hover(
  function(){
    $('.table1 td:nth-child('+($(this).index()+1)+')').addClass('hover');
  },
  function(){
    $('.table1 td:nth-child('+($(this).index()+1)+')').removeClass('hover');
  });

检查这个小提琴http://jsfiddle.net/YDLDm/6/

于 2012-10-27T16:25:23.047 回答