html - 如何在鼠标悬停时更改同一类嵌套 div 的边框颜色

标签 html jquery colors border

<分区>

我的 HTML 包含一系列嵌套的 div,每个都具有相同的类(“shell”)但具有唯一的 ID。

<div class="shell s01" id="blah">
    <!-- s01 content -->
    <div class="shell s02" id="bar">
        <!-- s02 content -->
        <div class="shell s03" id="wah">
            <!-- s03 content -->
        </div>

        <div class="shell s03" id="foo">
            <!-- s03 content -->
        </div>
    </div>
</div>

我希望当鼠标进入一个 div 时它的边框颜色会改变,但是当鼠标进入一个子 div 时它应该恢复到原来的颜色。下面的 jQuery 代码将边框颜色更改为蓝色,但不会在鼠标进入子 div 时将父 div 边框返回到原始颜色 (#8E8DA2)。相反,当将鼠标悬停在内部 div 上时,它及其所有祖先都会突出显示。例如,如果将鼠标悬停在“wah”上,则“blah”和“bar”也会突出显示。我想让“blah”和“bar”恢复到原来的边框颜色。

我知道当鼠标在 child 上方时,它也会在 child 的 parent 上方。但我不确定为什么下面的“parent”语句不能解决问题。

$('.shell').mouseover(function() {
    $(this).parent('.shell').css('border-color', '#8E8DA2');
    $(this).css('border-color', '#0000FF');
});

$('.shell').mouseout(function() {
    $(this).css('border-color', '#8E8DA2');
});

有什么想法吗?

最佳答案

我找到了一个 working solution .关键是在鼠标悬停事件上调用 stopPropagation() 方法。

$('.shell').mouseover(function(e) {
    e.stopPropagation();
    $(this).css('border-color', '#0000FF');
})

$('.shell').mouseout(function() {
    $(this).css('border-color', '#8E8DA2');
});

关于html - 如何在鼠标悬停时更改同一类嵌套 div 的边框颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5261428/

相关文章:

Java 等同于 .NET 的 ColorBlend

javascript - Jquery 效果在鼠标悬停时显示 <li><a> 菜单元素的溢出文本

jquery - 仅输入数字后无法选择文本

php - 如何在 PHP 中循环使用十六进制颜色代码?

html - 如何切片PSD?

javascript - 如何使用 JQuery 中的 anchor 标记从其他页面中选择特定选项卡..?

ios - 在iOS中更改按钮文本的颜色(objective-c)

javascript - 动态导航列表菜单

html - 表格 _td_ 中的自动溢出没有确定的高度

html - CSS 阻止 div 高度超出视口(viewport)+滚动时使 topnav 保持不变