在 jQuery 中悬停表格行时存储背景颜色
我有一个 ASP.NET GridView。根据所显示字段之一的值,每一行具有不同的颜色。有两个可能的值,因此可以有两种不同的颜色。
现在我想突出显示鼠标悬停在 GridView 上的行。下面的脚本工作完美,但是一旦我将鼠标悬停,任何行的颜色都会变成白色。
我想知道是否有一种方法可以在鼠标悬停时以某种方式存储该行的“原始”颜色,并在鼠标悬停时将其放回原处。
$(document).ready(function() {
$("#<%=gdUpdateProduct.ClientID%> tr:has(td)").hover(function() {
$(this).css("background-color", "Lightgrey");
}, function() {
$(this).css("background-color", "#ffffff");
});
});
我尝试了这个对我来说似乎很合乎逻辑的解决方案,但它不起作用,因为脚本完成执行后不会存储颜色值:
$(document).ready(function() {
$("#<%=gdUpdateProduct.ClientID%> tr:has(td)").hover(function() {
var color = $(this).css("background-color");
$(this).css("background-color", "Lightgrey");
}, function() {
$(this).css("background-color", "#ffffff");
});
});
有人可以提供解决方案吗?谢谢
I have an ASP.NET GridView. Each row has a different color depending on the value of one of the displayed fields. There are two possible values therefore there can be two different colors.
Now I want to highlights the rows on the GridView hovered by the mouse. The below script works perfecty but once I hover the mouse out the color becomes white for any row.
I would like to know if there is a way to somehow store the "original" color of the row when the mouse hovers in and put it back once the mouse hovers out.
$(document).ready(function() {
$("#<%=gdUpdateProduct.ClientID%> tr:has(td)").hover(function() {
$(this).css("background-color", "Lightgrey");
}, function() {
$(this).css("background-color", "#ffffff");
});
});
I tried this solution that seems quite logical to me but it does not work because the script does not store the value of color once it finishes to execute:
$(document).ready(function() {
$("#<%=gdUpdateProduct.ClientID%> tr:has(td)").hover(function() {
var color = $(this).css("background-color");
$(this).css("background-color", "Lightgrey");
}, function() {
$(this).css("background-color", "#ffffff");
});
});
Anybody might provide a solution? Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以将以前的(原始)值存储在
data
中 属性:如果您使用 HTML5,则可以直接在
元素中设置
data
属性(<一个href="http://api.jquery.com/data/#data2" rel="nofollow">docs):这样,您就可以简单地摆脱:
You could store the previous (original) value in the
data
property:If you're using HTML5, you can set the
data
property directly in the<tr>
element (docs):That way, you can simply get away with:
您是否尝试过
这种方式,变量是全局的,因此会记住该值。
Have you tried
This way the varaible is global so will remember the value.
如果您的突出显示颜色是静态的(看起来是静态的),那么另一种方法是创建一个名为 : 的类
,然后简单地:
您将免费获得原始背景颜色(在 chrome 24.0.1312.57 中测试) m 和 FF 18.0.2(赢 7))。
托比
If your highlight colour is static (which it appears to be) then an alternative approach would be to create a class called something like :
and then simply:
And you'll get the original background colour back for free (tested in chrome 24.0.1312.57 m and FF 18.0.2 on win 7).
Toby