如果您添加一个包装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并且页面准备好运行此代码的常见方法。