Javascript 显示<;李>;动态使用jqueryhover

Javascript 显示<;李>;动态使用jqueryhover,javascript,jquery,html,css,user-interface,Javascript,Jquery,Html,Css,User Interface,我试图创建一个动态的,这样当我将鼠标悬停在(类详细信息)上时,它会在其下方动态创建另一个(该类的作业)。我有这个工作 但是,当我离开时,我希望作业项目列表消失。为了完成这一点,我决定在离开时删除作业项的。问题是,如果我从不停留在作业列表中,而只是停留在类项目细节中,它就不会消失。我是jQuery新手,因此可能缺少一些简单的东西 悬停前 悬停在第一类项目中 当我将鼠标移出项目时,我希望项目消失 但我想保持这样的功能,当我悬停在作业列表中时,它不会消失: 当我将鼠标悬停在作业列表外时,它消失

我试图创建一个动态的
,这样当我将鼠标悬停在
  • (类详细信息)上时,它会在其下方动态创建另一个
  • (该类的作业)。我有这个工作

    但是,当我离开
  • 时,我希望作业项目列表消失。为了完成这一点,我决定在离开
  • 时删除作业项的
  • 。问题是,如果我从不停留在作业列表中,而只是停留在类项目细节中,它就不会消失。我是jQuery新手,因此可能缺少一些简单的东西

    悬停前

    悬停在第一类项目中

    当我将鼠标移出项目时,我希望项目消失

    但我想保持这样的功能,当我悬停在作业列表中时,它不会消失:

    当我将鼠标悬停在作业列表外时,它消失了(目前正在这样做)

    这是我的密码:

    jQuery.js

    $(document).ready(function() {
    
        $(".item").hover(
            function(){
                $(this).find('.class-item').find('.top').css("background", "#D0D0D0");
                $(this).find('.class-item ').find('.bottom').css("background", "#B8B8B8");
                $(this).css("border-color", "white");
    
                $(this).css("margin-bottom", "0");
    
                $('#classes li:eq(' + $( "li" ).index(this) + ')').after('<li class="hw"><ul><li class="hw-item">Homework 1</li><li class="hw-item">Homework 2</li></ul></li>');
    
                var parent = $(this);
    
                $(".hw").hover(
                    function(){
                    }, 
                    function(){
                        parent.css("margin-bottom", "2%");
    
                        $('#classes li:eq(' + ($( "li" ).index(parent) + 1) + ')').remove();
                    }
                );
    
            }, 
            function(){
    
                $(this).find(' .class-item ').find(' .top ').css("background", "#B8B8B8");
                $(this).find(' .class-item ').find(' .bottom ').css("background", "#D0D0D0");
                $(this).css("border-color", "#888888");
            }
        );
    });
    
    index.html

    <html>
        <head>
            <title>Homework</title>
            <link rel="stylesheet" href="style.css">
            <script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
            <script type="text/javascript" src="./jquery.js"></script>
        </head>
    
        <body>
            <div id="left">
                <img src="me.jpg"/>
            </div>
    
            <div id="right">
                <ul id="classes">
                    <li class = "item">
                        <div class="class-item">
                            <div class="top">
                                <h3>Algorithm Analysis</h3>
                            </div>
    
                            <div class="bottom">
                                COMPSCI 704
                            </div>
                        </div>
                    </li>
    
                    <li class = "item">
                        <div class="class-item">
                            <div class="top">
                                <h3>Programming Language Concepts</h3>
                            </div>
    
                            <div class="bottom">
                                COMPSCI 431
                            </div>
                        </div>
                    </li>
                    <li class = "item">
                        <div class="class-item">
                            <div class="top">
                                <h3>Physics 1 with Calculus</h3>
                            </div>
    
                            <div class="bottom">
                                PHYSICS 209
                            </div>
                        </div>
                    </li>
                    <li class = "item">
                        <div class="class-item">
                            <div class="top">
                                <h3>Computer Ethics</h3>
                            </div>
    
                            <div class="bottom">
                                COMPSCI 395
                            </div>
                        </div>
                    </li>
                    <li class = "item">
                        <div class="class-item">
                            <div class="top">
                                <h3>Computer Architecture</h3>
                            </div>
    
                            <div class="bottom">
                                COMPSCI 458
                            </div>
                        </div>
                    </li>
                </ul>
            </div>
        </body>
    </html>
    
    
    作业
    
    • 算法分析 COMPSCI 704
    • 程序设计语言概念 COMPSCI 431
    • 物理1与微积分 物理学209
    • 计算机伦理 COMPSCI 395
    • 计算机体系结构 COMPSCI 458

    多亏了我帖子上的评论,我得以避免使用javascript,而只通过css使用:

    .class-item {
        height: 150px;
        width: 100%;
        display: inline-block;
        border: 5px solid #888888;
    }
    
    .homework {
        padding: 1%;
        display: none;
    }
    
    .class-item:hover + .homework {
        display: block;
    }
    
    .homework:hover {
        display: block;
    }
    

    这不需要javascript;这可以通过CSS来完成。关于这一点,有很多例子/教程。我认为这不是正确的方法,你不应该在悬停时创建
    li
    。这些项目应该已经存在于隐藏的子项
    ul
    中,当鼠标悬停时,当
    ul
    失去焦点或父项
    li
    失去焦点时,这些项目就会消失。我会这样做的
    .class-item {
        height: 150px;
        width: 100%;
        display: inline-block;
        border: 5px solid #888888;
    }
    
    .homework {
        padding: 1%;
        display: none;
    }
    
    .class-item:hover + .homework {
        display: block;
    }
    
    .homework:hover {
        display: block;
    }