Цитата:
var items = document.querySelectorAll(".item"), чтоб было отличие в строке 65 |
Почему автоматическое закрытие происходит только 1 раз?
http://plnkr.co/edit/b5LbiFyk3QtwFBvf03zm?p=preview |
DivMan,
:-?
<!DOCTYPE HTML>
<html>
<head>
<style>
.none{display: none;}
</style>
<meta charset="utf-8">
</head>
<body>
<ul class="mainMenu">
<li class="item">
<div class="item_title" >Основы языка и как на нём говорить правильно</div>
<ul class="submenu">
<li>Лексическая структура</li>
<li>Типы данных, значения и переменные</li>
<li>Выражения и операторы инструкции</li>
</ul>
</li>
<li class="item">
<div class="item_title" >Функции</div>
<ul class="submenu none">
<li>Лексическая структура</li>
<li>Типы данных, значения и переменные</li>
<li>Выражения и операторы инструкции</li>
</ul>
</li>
<li class="item">
<div class="item_title" >Обработка ошибок и отладка</div>
<ul class="submenu none">
<li>Лексическая структура</li>
<li>Типы данных, значения и переменные</li>
<li>Выражения и операторы инструкции</li>
</ul>
</li>
<li class="item">
<div class="item_title">Объекты и массивы</div>
<ul class="submenu none">
<li>Лексическая структура</li>
<li>Типы данных, значения и переменные</li>
<li>Выражения и операторы инструкции</li>
</ul>
</li>
<li class="item">
<div class="item_title">События</div>
<ul class="submenu none">
<li>Лексическая структура</li>
<li>Типы данных, значения и переменные</li>
<li>Выражения и операторы инструкции</li>
</ul>
</li>
</ul>
<script>
var mainMenu = document.querySelector(".mainMenu"),
itemChild = mainMenu.querySelectorAll(".submenu");
mainMenu.addEventListener("click", function(e) {
var item = e.target.closest(".item");
var submenu = item.querySelector(".submenu");
var itemTitle = item.querySelector(".item_title");
if (e.target == itemTitle) {
submenu.classList.toggle("none");
for (var i = 0; i < itemChild.length; i++)
if (itemChild[i] != submenu) itemChild[i].classList.add("none")
}
});
</script>
</body>
</html>
|
Я хочу что бы при клике, у главного пункта менялся цвет, но почему меняется у всех, если я сделал по тому же принципу? http://plnkr.co/edit/OQxzD9Y4NVmQtihFpNir?p=preview
|
DivMan,
<!DOCTYPE HTML>
<html>
<head>
<style>
.none{display: none;}
ul{
list-style: none;
padding: 0;
}
.submenu{
background: #e7e7e7;
}
.item_title{
background: #696666;
cursor: pointer;
}
.active{background: #ff8663;}
</style>
<meta charset="utf-8">
</head>
<body>
<ul class="mainMenu">
<li class="item">
<div class="item_title active" >Основы языка и как на нём говорить правильно</div>
<ul class="submenu">
<li>Лексическая структура</li>
<li>Типы данных, значения и переменные</li>
<li>Выражения и операторы инструкции</li>
</ul>
</li>
<li class="item">
<div class="item_title" >Функции</div>
<ul class="submenu none">
<li>Лексическая структура</li>
<li>Типы данных, значения и переменные</li>
<li>Выражения и операторы инструкции</li>
</ul>
</li>
<li class="item">
<div class="item_title" >Обработка ошибок и отладка</div>
<ul class="submenu none">
<li>Лексическая структура</li>
<li>Типы данных, значения и переменные</li>
<li>Выражения и операторы инструкции</li>
</ul>
</li>
<li class="item">
<div class="item_title">Объекты и массивы</div>
<ul class="submenu none">
<li>Лексическая структура</li>
<li>Типы данных, значения и переменные</li>
<li>Выражения и операторы инструкции</li>
</ul>
</li>
<li class="item">
<div class="item_title">События</div>
<ul class="submenu none">
<li>Лексическая структура</li>
<li>Типы данных, значения и переменные</li>
<li>Выражения и операторы инструкции</li>
</ul>
</li>
</ul>
<script>
var mainMenu = document.querySelector(".mainMenu"),
itemChild = mainMenu.querySelectorAll(".submenu");
mainMenu.addEventListener("click", function(e) {
var item = e.target.closest(".item");
var submenu = item.querySelector(".submenu");
var itemTitle = item.querySelector(".item_title");
if (e.target == itemTitle) {
submenu.classList.toggle("none");
itemTitle.classList.toggle("active");
for (var i = 0; i < itemChild.length; i++)
if (itemChild[i] != submenu) {
itemChild[i].classList.add("none");
itemChild[i].previousElementSibling.classList.remove("active");
}
}
});
</script>
</body>
</html>
|
| Часовой пояс GMT +3, время: 01:43. |