【发布时间】:2013-11-14 17:30:00
【问题描述】:
我正在尝试在选择一行时更改颜色/背景,就像我将其设置为悬停时一样,并且还可以取消选择该行...
如果您查看:http://jsfiddle.net/q7ApN/,您可以看到它在悬停时的样子...
如果改变:
#gradient-style tbody tr:hover td {
background: #d0dafd url('table-images/gradhover.png') repeat-x;
color: #339;
}
到
#gradient-style tbody tr:hover, tr.selected td {
background: #d0dafd url('table-images/gradhover.png') repeat-x;
color: #339;
}
实际 HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
<style type="text/css">
<!--
@import url("nstyle.css");
-->
</style>
</head>
<body>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
$("tr").click(function(){
$(this).addClass("selected").siblings().removeClass("selected");
});
</script>
<div id="header_container">
<div id="header">
<a href="http://test.com/" target="_blank">test</a>
</div>
</div>
<div id="container">
<table id="gradient-style" summary="">
<tbody>
<thead>
<tr>
<th scope="col">title</th>
<th scope="col">title</th>
<th scope="col">title</th>
<th scope="col">title</th>
</tr>
</thead>
<tr><td>data</td><td class="test">data</td><td class="test">data</td></tr>
<tr><td>data</td><td>data</td><td class="test">data</td></tr>
<tr><td class="test">data</td><td class="test">data</td><td class="test">data</td></tr>
<tr><td class="test">data</td><td class="test">data</td><td class="test">data</td></tr>
</tbody>
<tfoot>
<tr>
<td colspan=34><em>testing box :)</em></td>
</tr>
</tfoot>
</table>
</div>
<div id="footer_container">
<div id="footer">
<a href="http://test.com/" target="_blank">test</a>
<div id="footer1">
<i>test.</i>
</div>
<div id="footer2">
<i>test test test.</i>
</div>
</div>
</div>
</body>
</html>
有什么想法吗?
【问题讨论】:
-
我已经有了悬停功能,我正在尝试让选择功能与悬停功能一起使用,请参阅 jsfiddle 代码
-
如果您想更改选定元素的背景/颜色,只需尝试
#gradient-style tbody tr:hover td, #gradient-style tr.selected td而不是#gradient-style tbody tr:hover, tr.selected td。见例子jsfiddle.net/q7ApN/2 -
背景不适用于所选元素,因为
#gradient-style td比tr.selected td具有更大的权重。 -
@AleksDorohovich 我尝试将您的 jsfiddle 中的代码与我的代码合并,但不幸的是我无法让它像您的 js 一样工作......我导入的 jquery 是否正确? (我有一个版本下载到同一个文件夹中)
-
不是js的问题,就是css的问题。对于选定的元素,只需尝试添加权重超过
#gradient-style td的 css 选择器。 ID总是比class更“重量”。所以,如果你想改变背景颜色(或其他属性),那么你应该使用tr.selected td而不是#gradient-style tr.selected td。
标签: javascript jquery html css