首先,我假设这对CSS3来说太复杂了,但如果有什么解决方案,我会很乐意去做。
HTML非常简单。
<div class="parent">
<div class="child">
Text Block 1
</div>
</div>
<div class="parent">
<div class="child">
Text Block 2
</div>
</div>
默认情况下,子div设置为display:none;,但当鼠标悬停在父div上时,将更改为display:block;。问题是,这个标记出现在我的站点上的几个地方,我只希望在鼠标停留在父站点上时显示子站点,而不希望在鼠标停留在其他父站点上时显示子站点(它们都有相同的类名,没有it)。
我尝试过使用$(this)
和.children()
,但都无济于事。
$('.parent').hover(function(){
$(this).children('.child').css("display","block");
}, function() {
$(this).children('.child').css("display","none");
});
发布于 2011-02-21 11:25:10
为什么不直接使用CSS呢?
.parent:hover .child, .parent.hover .child { display: block; }
然后为IE6添加JS (例如,在条件注释中),它不支持:正确地悬停:
jQuery('.parent').hover(function () {
jQuery(this).addClass('hover');
}, function () {
jQuery(this).removeClass('hover');
});
这里有一个简单的例子:Fiddle
发布于 2015-06-08 17:18:48
.parent:hover > .child {
/*do anything with this child*/
}
发布于 2011-02-21 12:17:07
使用toggleClass()
。
$('.parent').hover(function(){
$(this).find('.child').toggleClass('color')
});
其中color
是类。您可以根据自己的喜好设置类的样式,以实现所需的行为。该示例演示了如何在鼠标输入和输出时添加和删除类。
查看工作示例here。
https://stackoverflow.com/questions/5061940
复制相似问题