Скрыть подменю
Есть такой мини код
http://jsfiddle.net/bfyfn4k0/ Вопрос: как сделать чтобы при клике на "+" другие открытые подменю скрывались, а текущий соответственно открывался Спасибо! |
Цитата:
<!DOCTYPE html>
<html ng-app>
<head>
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="http://code.angularjs.org/1.1.4/angular.min.js"></script>
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
.leftmenu li {list-style:none; }
.leftmenu li span {border:1px solid #96b6c6; border-radius:7px; padding:13px 10px 13px 17px; margin-bottom:4px; background:url('../images/head.jpg') no-repeat 0 0; position:relative; display:block;}
.leftmenu li a {color:#363636; text-decoration:none;}
.leftmenu ul ul {display:none;}
.leftmenu .open {position:absolute; width:26px; height:26px; background:url('../images/open.png') no-repeat 0 0; top:9px; right:12px; z-index:140; cursor:pointer; }
.leftmenu .open:hover, .leftmenu .open.active { background:url('../images/open.png') no-repeat -26px 0; }
.leftmenu li li {margin-left:20px;}
.leftmenu li li span {padding-top:10px; padding-bottom:10px;}
.leftmenu li a:hover, .leftmenu li.active>span>a, .leftmenu li li.active a {text-decoration:underline;}
</style>
<script type='text/javascript'>
$(function(){
$(".open").click(function(){
$('.open.active').parent("span").parent("li").children("ul").slideToggle("slow");
var end=$(this).hasClass('active');
$('.leftmenu .open').removeClass("active");
if (!end) {
$(this).parent("span").parent("li").children("ul").slideToggle("slow");
$(this).toggleClass("active");
};
});
});
</script>
</head>
<body>
<div class="leftmenu"> <ul>
<li><span><a href="#">Пункт меню</a><i class="open">+</i></span>
<ul>
<li><span><a href="#">Под пункт меню</a></span></li>
<li><span><a href="#">Под пункт меню</a></span></li>
<li><span><a href="#">Под пункт меню</a></span></li>
<li><span><a href="#">Под пункт меню</a></span></li>
</ul>
</li>
<li><span><a href="#">Пункт меню</a></span></li>
<li><span><a href="#">Пункт меню</a></span></li>
<li><span><a href="#">Пункт меню</a><i class="open">+</i></span>
<ul>
<li><span><a href="#">Под пункт меню</a></span></li>
<li><span><a href="#">Под пункт меню</a></span></li>
<li><span><a href="#">Под пункт меню</a></span></li>
</ul>
</li>
</ul>
</div>
</body>
</html>
|
segajb,
:write: ... вариант
<!DOCTYPE html>
<html ng-app>
<head>
<meta charset="utf-8">
<script src='https://code.jquery.com/jquery-latest.js'></script>
<style type='text/css'>
.leftmenu li {list-style:none; }
.leftmenu li span {border:1px solid #96b6c6; border-radius:7px; padding:13px 10px 13px 17px; margin-bottom:4px; background:url('../images/head.jpg') no-repeat 0 0; position:relative; display:block;}
.leftmenu li a {color:#363636; text-decoration:none;}
.leftmenu ul ul {display:none;}
.leftmenu .open {position:absolute; width:26px; height:26px; background:url('../images/open.png') no-repeat 0 0; top:9px; right:12px; z-index:140; cursor:pointer; }
.leftmenu .open:hover, .leftmenu .open.active { background:url('../images/open.png') no-repeat -26px 0; }
.leftmenu li li {margin-left:20px;}
.leftmenu li li span {padding-top:10px; padding-bottom:10px;}
.leftmenu li a:hover, .leftmenu li.active>span>a, .leftmenu li li.active a {text-decoration:underline;}
.open.active{
border: #0033FF 2px solid;
}
</style>
<script type='text/javascript'>
$(function() {
var li = $(".leftmenu li");
li.each(function(indx, el) {
$(".open", el).click(function() {
$(".open").not($(this).toggleClass('active')).removeClass("active");
$("ul", li).not($("ul", el).slideToggle("slow")).slideUp();
})
});
$(".open", li[0]).click() ;
});
</script>
</head>
<body>
<div class="leftmenu"> <ul>
<li><span><a href="#">Пункт меню</a><i class="open">+</i></span>
<ul>
<li><span><a href="#">Под пункт меню</a></span></li>
<li><span><a href="#">Под пункт меню</a></span></li>
<li><span><a href="#">Под пункт меню</a></span></li>
<li><span><a href="#">Под пункт меню</a></span></li>
</ul>
</li>
<li><span><a href="#">Пункт меню</a></span></li>
<li><span><a href="#">Пункт меню</a></span></li>
<li><span><a href="#">Пункт меню</a><i class="open">+</i></span>
<ul>
<li><span><a href="#">Под пункт меню</a></span></li>
<li><span><a href="#">Под пункт меню</a></span></li>
<li><span><a href="#">Под пункт меню</a></span></li>
</ul>
</li>
</ul>
</div>
</body>
</html>
|
+
всем спасибо, то что нужно! |
Открыта первая категория
А как реализовать - чтобы первая категория была по умолчанию открыта ?
|
Цитата:
|
Цитата:
|
Цитата:
|
globus812,
если вы про исходный вид меню, то это забота сервера, можно конечно парсить ссылку на клиенте или запоминать нажатия и раскрывать меню, но это к более продвинутым специалистам. |
| Часовой пояс GMT +3, время: 15:31. |