javascript - 将鼠标悬停并单击 li 元素更改类

标签 javascript jquery html hover

我正在尝试创建侧边导航,但我没有使用 jQuery 的经验。

我想要做的是,当鼠标悬停在事件元素以外的任何其他 li 元素上时,悬停的元素会获得 .active 类,并且第一个元素会删除该类,但是当鼠标离开该元素而不单击它时,.active 类会再次出现到第一个 li 元素,除非单击它。我希望你能明白。

我尝试用 .hover 做悬停的事情,但我不知道如何在鼠标离开时恢复到初始 html 以及如何同时实现 .click 功能。

$("#nav li").hover(function() {
    $("#nav li").removeClass("active");
    $(this).addClass("active");                   
    return false;
}, 
function () {
     $(this).removeClass("active");
});          

这是我的 HTML:

<nav id="nav">
<ul>
    <li class="active"><a href="#slide1" title="Next Section" >About</a></li>
    <li><a href="#slide2" >Works</a></li>
    <li><a href="#slide3" >Contact</a></li>
</ul>
</nav>

最佳答案

您的代码即将完成,您可以查看下面的代码片段以获取完整的工作结果。

$("#nav li").hover(function() 
 {
   $("#nav li").removeClass("active");
   $(this).addClass("active");                   
   return false;
 }, 
 function () 
 {
   $("#nav li").removeClass("active");
   $("#nav li:first").addClass("active");
 }
);  
.active
{
   background-color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<nav id="nav">
<ul>
    <li class="active"><a href="#slide1" title="Next Section" >About</a></li>
    <li><a href="#slide2" >Works</a></li>
    <li><a href="#slide3" >Contact</a></li>
</ul>
</nav>

关于javascript - 将鼠标悬停并单击 li 元素更改类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37494253/

相关文章:

javascript - 修改 ng-messages 指令以仅在字段为 $dirty 时显示

jquery - HTML5视频播放和暂停触发

javascript - 用不同的图像/按钮替换图像 - javascript

html - 为什么我的现场设置容器会在移动设备 View 中溢出,但不会在更大的屏幕尺寸下溢出?

php - 点击 "Warning: page has expired"按钮时 IE 出现 "back"错误

javascript - 修复了溢出中的定位元素 :scroll

javascript - 使 Twitter Bootstrap Modal 窗口变大

javascript - 如何在javascript中检测android pinch zoom

javascript - 访问当前 div 之外的 div 内的元素

javascript - 在 JS 变量中传递 '+' 符号