jquery - 嵌套的 Li 元素悬停备用背景颜色

标签 jquery html css

这是我的问题的简要概述。我有一个列表,其初始背景颜色 1 如下所示:

<ul>
<li>Item 1
    <ul>
    <li>Sub Item 1
        <ul>
            <li> Sub Sub Item 1</li>
            <li>Sub Sub Item 2</li>
        </ul>
    </li>
    <li>Sub Item 2</li>
    </ul>
</li>
<li>Item 2</li>
</ul>

我想要的是,当悬停在第一级元素(元素 1、元素 2)上时,其背景更改为颜色二。然后当子元素 1,2 悬停在上面时,背景颜色更改为颜色 1。当子项 1,2 悬停在上面时,它们会变为 颜色 2,依此类推,因为嵌套会越来越深。这意味着对于不同级别的嵌套,背景颜色随着悬停的深入而在两种颜色之间交替。

知道如何使用 jquery 或 css 或两者来做到这一点吗?

最佳答案

您遇到的问题是当您将鼠标悬停在子项上时会触发多个悬停事件。由于子元素是父元素的一部分,因此从技术上讲,父元素也在悬停。您可以通过将每个元素的文本包装在像 span 这样的内联元素中来解决这个问题。现在每个列表项只激活一个悬停事件。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style>
.odd {color:red;}
.odd:hover, .odd:active{color:blue;}

.even{color:blue;}
.even:hover, .even:active{color:red;}
</style>
</head>
<ul>
<li><span class="odd">Item 1</span>
    <ul>
    <li><span class="even">Sub Item 1</span>
        <ul>
            <li><span class="odd"> Sub Sub Item 1</span></li>
            <li><span class="odd">Sub Sub Item 2</span></li>
        </ul>
    </li>
    <li><span class="even">Sub Item 2</span></li>
    </ul>
</li>
<li><span class="odd">Item 2</span></li>
</ul>


</html>

关于jquery - 嵌套的 Li 元素悬停备用背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5038198/

相关文章:

javascript - 从页面重定向中排除 id (jquery)

Jquery + 将复选框值添加到 href 元素

jquery - 使用 jQuery 1.4 跨平台、跨浏览器播放声音的方式?

html - 如何在完成后保持 CSS3 动画静止,然后在鼠标离开后恢复

html - 使用 CSS @media 查询显示和隐藏 div 不起作用

javascript - 替换使用 ajax 的页面上的内容

html - 随机数未呈现的HTML模板

html - 导航栏定位

java - 动态创建行时如何为行提供替代颜色?

html - CSS 图像边距底部