首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >悬停父元素时更改子元素的CSS

悬停父元素时更改子元素的CSS
EN

Stack Overflow用户
提问于 2011-02-21 11:21:30
回答 7查看 221.2K关注 0票数 181

首先,我假设这对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");
        });
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 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

票数 307
EN

Stack Overflow用户

发布于 2015-06-08 17:18:48

.parent:hover > .child {
    /*do anything with this child*/
}
票数 13
EN

Stack Overflow用户

发布于 2011-02-21 12:17:07

使用toggleClass()

$('.parent').hover(function(){
$(this).find('.child').toggleClass('color')
});

其中color是类。您可以根据自己的喜好设置类的样式,以实现所需的行为。该示例演示了如何在鼠标输入和输出时添加和删除类。

查看工作示例here

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5061940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档