[英]how to make the selected menu stay selected jquery, css , html
accordian menu , has to make the submenu to stay selected after clicking by js. Accordian菜单,必须通过js单击后使子菜单保持选中状态。 or css .
或CSS。
not the static solution in html. 不是html中的静态解决方案。 need solution comprising jquery and the css it should appear same as hovering after clicked
需要包含jquery和css的解决方案,它应与单击后的悬停效果相同
check out the fiddle 查看小提琴
https://jsfiddle.net/shaswatatripathy/ucgff65k/ https://jsfiddle.net/shaswatatripathy/ucgff65k/
$(document).ready(function() { $("#accordion > li > div").click(function() { $("#submenu li").slideUp(); if (!$(this).next().is(":visible")) { $(this).next().slideDown(); } }); });
.accordion { width: 100%; max-width: 260px; background: #FFF; margin: 0; padding: 0; box-sizing: border-box; } .accordion .link { cursor: pointer; display: block; padding: 15px 15px 15px 42px; font-size: 14px; font-weight: 700; border-top: 1px solid #CCC; border-bottom: 1px solid #CCC; border-right: 1px solid #CCC; position: relative; -webkit-transition: all 0.4s ease; -o-transition: all 0.4s ease; transition: all 0.4s ease; } /*-------------Submenu-----------------------------*/ .submenu { padding: 0px; display: none; font-size: 14px; } .submenu li { border-bottom: 1px solid #4b4a5e; } .submenu a { display: block; text-decoration: none; color: #23222d; background-color: #CCC; padding: 12px; padding-left: 42px; -webkit-transition: all 0.25s ease; -o-transition: all 0.25s ease; transition: all 0.25s ease; } #submenu li.active { display: block; } .submenu a:hover { background: #b63b4d; color: #FFF; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <ul id="accordion" class="accordion"> <li> <div class="link">Menu 2</div> <ul class="submenu"> <li><a href="#">submenu1</a></li> <li><a href="#">submenu1</a></li> <li><a href="#">submenu1</a></li> </ul> </li> <li> <div class="link">Menu 3</div> <ul class="submenu"> <li><a href="#">submenu1</a></li> <li><a href="#">submenu1</a></li> <li><a href="#">submenu1</a></li> </ul> </li> </ul>
Hope this is what you're looking for, 希望这是您想要的,
$(document).ready(function() { $("#accordion > li > div").click(function() { $("#submenu li").slideUp(); if (!$(this).next().is(":visible")) { $(this).next().slideDown(); } }); $(".submenu li a").click(function(){ $(".submenu li a.active").removeClass("active"); $(this).addClass("active"); }); });
.accordion { width: 100%; max-width: 260px; background: #FFF; margin: 0; padding: 0; box-sizing: border-box; } .accordion .link { cursor: pointer; display: block; padding: 15px 15px 15px 42px; font-size: 14px; font-weight: 700; border-top: 1px solid #CCC; border-bottom: 1px solid #CCC; border-right: 1px solid #CCC; position: relative; -webkit-transition: all 0.4s ease; -o-transition: all 0.4s ease; transition: all 0.4s ease; } /*-------------Submenu-----------------------------*/ .submenu { padding: 0px; display: none; font-size: 14px; } .submenu li { border-bottom: 1px solid #4b4a5e; } .submenu a { display: block; text-decoration: none; color: #23222d; background-color: #CCC; padding: 12px; padding-left: 42px; -webkit-transition: all 0.25s ease; -o-transition: all 0.25s ease; transition: all 0.25s ease; } #submenu li.active { display: block; } .submenu a:hover { background: #b63b4d; color: #FFF; } .submenu li a.active { background: #b63b4d; color: #FFF; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul id="accordion" class="accordion"> <li> <div class="link">Menu 2</div> <ul class="submenu"> <li><a href="#">submenu1</a></li> <li><a href="#">submenu1</a></li> <li><a href="#">submenu1</a></li> </ul> </li> <li> <div class="link">Menu 3</div> <ul class="submenu"> <li><a href="#">submenu1</a></li> <li><a href="#">submenu1</a></li> <li><a href="#">submenu1</a></li> </ul> </li> </ul>
Create an .active
class for the <a>
tag inside <li>
which matches the CSS of the :hover
state of <a>
, like this: 创建
.active
为类<a>
内标签<li>
其中的CSS相符:hover
的状态<a>
,如下所示:
a.active {
background: #b63b4d;
color: #FFF;
}
And then just use the click event listener to add and remove this class when clicked on the submenu: 然后,在子菜单上单击时,只需使用click事件监听器即可添加和删除此类:
$(document).ready(function() {
$("#accordion > li > div").click(function() {
if (!$(this).next().is(":visible")) {
$(this).next().slideDown();
} else {
$(this).next().slideUp();
}
});
$(".submenu a").click(function() {
$(this).toggleClass("active").parent().siblings().find("a").removeClass("active");
});
});
I also modified to jQuery so that the accordion closes when it is clicked on in the open state. 我还修改了jQuery,以便在打开状态下单击手风琴时将其关闭。
Here's the working jsfiddle: https://jsfiddle.net/ucgff65k/2/ And the code snippet: 这是工作中的jsfiddle: https ://jsfiddle.net/ucgff65k/2/和代码片段:
$(document).ready(function() { $("#accordion > li > div").click(function() { if (!$(this).next().is(":visible")) { $(this).next().slideDown(); } else { $(this).next().slideUp(); } }); $(".submenu a").click(function() { $(this).toggleClass("active").parent().siblings().find("a").removeClass("active"); }); });
.accordion { width: 100%; max-width: 260px; background: #FFF; margin: 0; padding: 0; box-sizing: border-box; } .accordion .link { cursor: pointer; display: block; padding: 15px 15px 15px 42px; font-size: 14px; font-weight: 700; border-top: 1px solid #CCC; border-bottom: 1px solid #CCC; border-right: 1px solid #CCC; position: relative; -webkit-transition: all 0.4s ease; -o-transition: all 0.4s ease; transition: all 0.4s ease; } /*-------------Submenu-----------------------------*/ .submenu { padding: 0px; display: none; font-size: 14px; } .submenu li { border-bottom: 1px solid #4b4a5e; } .submenu a { display: block; text-decoration: none; color: #23222d; background-color: #CCC; padding: 12px; padding-left: 42px; -webkit-transition: all 0.25s ease; -o-transition: all 0.25s ease; transition: all 0.25s ease; } .submenu a:hover { background: #b63b4d; color: #FFF; } a.active { background: #b63b4d; color: #FFF; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul id="accordion" class="accordion"> <li> <div class="link">Menu 2</div> <ul class="submenu"> <li><a href="#">submenu1</a></li> <li><a href="#">submenu1</a></li> <li><a href="#">submenu1</a></li> </ul> </li> <li> <div class="link">Menu 3</div> <ul class="submenu"> <li><a href="#">submenu1</a></li> <li><a href="#">submenu1</a></li> <li><a href="#">submenu1</a></li> </ul> </li> </ul>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.