javascript - 如何使用 javascript 或 jquery 在悬停时更改 <li> 元素的颜色?

标签 javascript jquery html css

我想改变 <li> 的颜色元素悬停。就像下面的示例代码一样,当我将鼠标悬停在苹果或香蕉上时,它会显示棕色到相应的 <li>。元素到整套 <li>元素,当我将鼠标悬停在梨或无花果上时 <li> element 它应该在相应的 <li> 上显示黄色元素。

HTML:

<div id="tree">
<ul>
    <li>apple</li>
    <li>banana</li>
    <li>mango
        <ul>
            <li>date</li>
            <li>pear</li>
            <li>fig</li>
        </ul>
    </li>
</ul>

CSS:

#tree > ul > li:hover {
   background:brown;
}
#tree > ul > li:hover > ul >li{
   background:white;
}
#tree > ul > li > ul > li:hover {
   background:yellow;
}

JS:

$(document).ready(function () {
$("#tree > ul > li > ul > li").hover(
    function() {
        $("#tree > ul > li").css("background","white");
         $("#tree > ul > li > ul > li").css("background","yellow");
    },
    function() {
        $("#tree > ul > li > ul > li").css("background","white");
    });

$("#tree > ul > li").hover(
    function() {
        $("#tree > ul > li > ul > li").css("background","white");
        $("#tree > ul > li").css("background","brown");

    },
    function() {
         $("#tree > ul > li").css("background","white");
    });

});

https://jsfiddle.net/1v57nwg8/3/

最佳答案

这是非常简化和解耦的:

.hover-brown:hover{
    background-color: brown;
}
.hover-yellow:hover{
    background-color: yellow;
}
.no-list-style{
    list-style: none;
}
<div id="tree">
    <ul>
        <li class="hover-brown">apple</li>
        <li class="hover-brown">banana</li>
        <li class="hover-brown">mango</li>
        <li class="no-list-style">
            <ul>
                <li class="hover-yellow">date</li>
                <li class="hover-yellow">pear</li>
                <li class="hover-yellow">fig</li>
            </ul>
        </li>
    </ul>
</div>

关于javascript - 如何使用 javascript 或 jquery 在悬停时更改 <li> 元素的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31606635/

相关文章:

javascript - 如何根据 % 在中心或底部对齐内部 div

javascript - 是否可以在 crossfilter 中按多个维度进行分组?

javascript - 扩展原生 DOM 元素的简写?

javascript - JSP 在 SPRING MVC Web 应用程序中呈现客户端还是服务器端?

javascript - 用JS从数千个地方获取数字

javascript - 使用 CSS 定位自身以外的样式

jquery - 单击表头时对表进行排序

asp.net - 如何在 ASP Web 窗体中调用服务器端和客户端事件

Racket 中的 HTML 解析问题

html - css3 过渡不适用于伪类焦点