我是jQuery的新手,需要一些帮助解决以下问题。jQuery - 如何用悬停覆盖背景颜色动画?
我有一个简单的数据表(20行4列)在网页上(asp.net mvc)。注意 - 我使用<div>
标签而不是<table> <td> <tr>
标签建立了表格。
对于每一行都有汇总数据,然后单击该行右侧的“编辑记录”选项。点击“编辑记录”可以看到更多的信息。
这里是一个图案:(在“真正的”表NB的名称/日期是真实姓名/日期等)
----------------------------------------------------------------------------
Name Date Status [ Edit Record]
----------------------------------------------------------------------------
Name Date Status [ Edit Record]
----------------------------------------------------------------------------
有四种效果我想创建:
- 当用户将鼠标悬停在一排的背景颜色改变
- 当用户点击“编辑记录”的更多信息可见度翻转
- 当附加信息可见背景颜色的变化。
- 当附加信息被隐藏在背景颜色默认为白色
到目前为止,我有以下的jQuery代码几乎工作(见问题在底部):
该代码处理“悬停“效果(1):
$("div.record").hover(function() {
$(this).addClass("recordhover");
}, function() {
$(this).removeClass("recordhover");
});
该代码处理的附加信息和背景颜色的可见性(2,3,4):
$("div.recordtopline > div.recorddetail").click(function(event) {
if (this == event.target) {
if ($(this).parent("div").next(".recordbelowline").is(':hidden')) {
$(this).parent("div").next(".recordbelowline").show();
$(this).parent("div").parent("div").animate({backgroundColor: "#FFEFC6" }, 'fast');
}
else {
$(this).parent("div").next(".recordbelowline").hide();
$(this).parent("div").parent("div").animate({ backgroundColor: "#FFF" }, 'fast');
}
return false;
}
});
问题
当我加载网页,悬停效果完全适用于所有行。但是,如果我选择了“编辑记录”以查看更多信息,然后隐藏了附加信息,则悬停效果不再适用于该行,即根据我的动画代码,backgorund颜色保持为白色。
我该如何克服这个问题,使悬停效果'覆盖'背景动画效果?
我正在使用彩色动画插件,我从jQuery下载。如果我正确地理解了你,你说使用样式表和jQuery的'addClass'和'removeClass'功能可以更容易地达到预期的效果。仅供参考,如果改变了任何东西,我需要支持Ie6 – 2010-04-23 10:17:58
完美实现了这项工作。喜欢它。这么简单,我觉得很愚蠢!非常感谢您的帮助。 – 2010-04-23 10:23:21