如果你添加一个包装器div,你可以在没有任何js的情况下完成它。您的示例的唯一问题是中间<div>
没有应用任何效果,因此 jsfiddle 解决方案看起来有点奇怪,但可以使用效果,它可能是您想要的。
这个想法是您将悬停父级并将样式应用于两者,然后当还悬停在子级上时,将不同的样式应用于该子级。
如果可能,也尽量不要使用 id,它们对你的限制比你经常需要的要多。
.parent:hover .list-a, .parent:hover .list-b {
box-shadow: 3px 3px 5px 6px #ccc;
}
.parent .list-a:hover {
box-shadow: none;
background:#aaa;
}
.parent .list-b:hover {
box-shadow: none;
background:#4c4;
}
http://jsfiddle.net/tHTN4/
现在让我们重新编辑 jQuery 部分。由于您不了解任何jQuery,或者知识量不大。jQuery(基于 Javascript 的工具)只是帮助您以简单有效的方式操作 HTML(DOM)。为了帮助您不在多个位置编辑 css,请使用 addClass 和 removeClass 函数:
$(function(){
$('#a').hover(function(){
$('#a').addClass('.list-one-effect');
$('#b').addClass('.list-two-effect');
}, function(){
$('#a').removeClass('.list-one-effect');
$('#b').removeClass('.list-two-effect');
})
});
一旦你移除这个类,它会自动恢复到原始状态(或最后改变的状态!从其他效果)。jQuery 中还有一个 toggleClass 函数,但我建议你不要使用它,因为上面总是会告诉你你在什么时候处于什么状态。为了完整起见,这包含在 $(function(){}) 中,这是确保您已加载 jQuery 并且页面已准备好运行此代码的一种常用方法。