单击菜单选项后,单击时冻结悬停
freezing hover onclick after clicking a menu option
我有一个菜单。
#menu {
background: red;
}
.menu-option {} .menu-option:hover {
background: maroon;
}
.menu-option:active {
background: black;
}
<div id="menu" align="center">
<div class="menu-option" align="center" onclick="showgenre(1)">Literary</div>
<div class="menu-option" align="center" onclick="showgenre(2)">FilmFest</div>
<div class="menu-option" align="center" onclick="showgenre(3)">Dance</div>
<div class="menu-option" align="center" onclick="showgenre(4)">Music</div>
<div class="menu-option" align="center" onclick="showgenre(5)">Fine Arts</div>
<div class="menu-option" align="center" onclick="showgenre(6)">Quiz</div>
<div class="menu-option" align="center" onclick="showgenre(7)">Dramatics</div>
</div>
现在我想要的是,当我单击任何菜单选项时,该特定menu-option
的background
应该永久maroon
,直到单击任何其他选项而所有其他选项都red
。
我如何实现相同的目标?首选 CSS。
CSS解决方案是将tabindex添加到元素中,以便它们获得焦点,然后在焦点上设置颜色。
#menu {
background: red;
}
.menu-option:hover,
.menu-option:focus {
background: maroon;
outline:none;
}
<div id="menu" align="center">
<div class="menu-option" align="center" onclick="showgenre(1)" tabindex="-1">Literary</div>
<div class="menu-option" align="center" onclick="showgenre(2)" tabindex="-1">FilmFest</div>
<div class="menu-option" align="center" onclick="showgenre(3)" tabindex="-1">Dance</div>
<div class="menu-option" align="center" onclick="showgenre(4)" tabindex="-1">Music</div>
<div class="menu-option" align="center" onclick="showgenre(5)" tabindex="-1">Fine Arts</div>
<div class="menu-option" align="center" onclick="showgenre(6)" tabindex="-1">Quiz</div>
<div class="menu-option" align="center" onclick="showgenre(7)" tabindex="-1">Dramatics</div>
</div>
这里的问题是,如果焦点丢失,颜色也会消失,因此需要一些JS。使用JS,您只需设置类即可
$(function() { // execute after the elements are ready
// this is also a short form for $(document).ready(function(){
$('.menu-option').click(function() {
$(this).addClass('maroon').siblings().removeClass('maroon');
});
});
#menu {
background: red;
}
.menu-option:hover,
.menu-option.maroon {
background: maroon;
outline: none;
}
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="menu" align="center">
<div class="menu-option" align="center" onclick="showgenre(1)">Literary</div>
<div class="menu-option" align="center" onclick="showgenre(2)">FilmFest</div>
<div class="menu-option" align="center" onclick="showgenre(3)">Dance</div>
<div class="menu-option" align="center" onclick="showgenre(4)">Music</div>
<div class="menu-option" align="center" onclick="showgenre(5)">Fine Arts</div>
<div class="menu-option" align="center" onclick="showgenre(6)">Quiz</div>
<div class="menu-option" align="center" onclick="showgenre(7)">Dramatics</div>
</div>
为了使脚本正确执行,必须首先加载元素。 这意味着您可以将脚本放在文档的头部,但随后您必须设置一个准备好的处理程序来等待元素。或者,您可以在将元素加载到靠近主体末端之后放置它。
相关文章:
- 使用clickToggle并在单击另一个元素时关闭元素
- 单击时将焦点更改为元素
- 单击F5时如何停止页面加载
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 单击jquery清除输入值
- 单击按钮以等待单击按钮
- 在单击href链接的同时下载文件
- 单击顶部导航时如何进行向下滚动效果(向下滑动).
- 使图像在单击时展开到不大于浏览器
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 如何在单击复选框后调用控制器方法
- 单击页面上的链接后高度发生变化
- 使用jquery在单击时在单元格中输入值
- 将纯文本URL转换为可单击链接
- ASP.NET通过单击JavaScript按钮触发c#事件
- 单击提交按钮后加载图像将冻结
- Ajax加载冻结右键单击
- 单击菜单选项后,单击时冻结悬停
- Internet Explorer在执行鼠标单击+拖动操作时冻结.如何检测其原因