Javascript 将活动类添加到并在悬停后将其保留

Javascript 将活动类添加到并在悬停后将其保留,javascript,jquery,Javascript,Jquery,我有这个密码 <script> $("li").hover( function () { $(this).addClass('active'); }, function () { $(this).removeClass('active'); } ); </script> 以便在菜单中将类活动添加到我的li <ul class="list-first-

我有这个密码

<script>
    $("li").hover(
      function () {
        $(this).addClass('active');
      }, 
      function () {
        $(this).removeClass('active');
      }
      );
    </script>   
以便在菜单中将类活动添加到我的li

<ul class="list-first-level">
<div about="" typeof="" class="ds-1col entity entity-paragraphs-item paragraphs-item-modulo-de-enlaces-item view-mode-modulo_de_enlaces_01_d clearfix">
        <li id="elm" class="active always">
            <a href="/grados/eng/">Undergraduate programmes</a>
                <ul>
                    <li>
                        <a href="/grados/eng/ged">Law</a>
                    </li>
                </ul>
        </li>
    </div>
</ul>
在Im未悬停在元素上后,我不需要删除活动类。

只需使用以下命令:

$("li").hover(function(){
    $(this).addClass("active");
});

尽管如此,您最终会遇到许多活动LI,并且无法提供良好的用户体验。

当您将鼠标悬停在某个元素上时,请从所有LI元素中删除“活动”类,然后将其添加回当前元素。这仍然意味着,如果用户离开最后一个悬停的元素,该元素将保持“活动”状态

<script type="text/javascript">
    $("li").hover(
        function () {
            $("li").removeClass('active');
            $(this).addClass('active');
        }
    );
</script>   

只需删除这一行:$this.removeClass'active';这是mouseout事件,您告诉它删除其中的类。您应该删除UL中的div,因为这是无效的标记。但最后一个悬停的项目始终可见。请不要删除您的项目,然后再次询问相同的问题。如果需要,请编辑您的问题,而不是删除。您的HTML一开始是无效的,您不能将div作为ul的子级。你真正想要的似乎很不清楚。如果不起作用,最后一个悬停的项目总是可见的。@JAVIERMARTINBALSA但这是你问题的答案。