我已经采用了Chris Coyier表格行和col高亮代码并添加了斑马条纹。我可以让行突出显示,但是当斑马条纹启用时,col停止突出显示。
如果您取消注释jQuery的前两行以显示斑马条纹,您将看到我上面概述的问题。
不完全确定为什么这些是冲突的。
任何帮助表示感谢。
很抱歉所有的代码都在这里,但似乎我不能用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>
答案 0 :(得分: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/