Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   addEventListener (https://javascript.ru/forum/misc/62548-addeventlistener.html)

DivMan 15.04.2016 22:25

addEventListener
 
Я никак не понимаю, почему код работает, если переменные undefined, как это понимать?

https://jsfiddle.net/hyzLnvgx/1/

Decode 15.04.2016 23:00

Какие еще переменные undefined?

DivMan 16.04.2016 08:05

var item = document.querySelectorAll(".title-accordion")[0];
undefined

item
undefined

DivMan 16.04.2016 08:15

Я не понимаю, почему блок раскрывается, но в нём ничего нету?

https://jsfiddle.net/hyzLnvgx/3/

Alexander Belov 16.04.2016 10:46

DivMan,
1. У Вас по умолчанию для .main-item-accordion стоит в стилях opacity:0;, т.е. проверка if не нужна.

2.if ( mainIitemAaccordion.style.opacity = "0" )
Почитайте про операторы сравнения

3. Почитайте также про display и position.

DivMan 26.08.2016 16:18

Почему не удаляет последний добавленный элемент?
https://jsfiddle.net/o6gwLj9c/

Пишет, то, что это не узел. Почему это не узел, если searchSpan.length-1 это тоже элемент?

warren buffet 26.08.2016 17:26

Тут читай потому что https://developer.mozilla.org/en-US/...de/removeChild

searchSpan.length-1 не элемент, а писло.

warren buffet 26.08.2016 17:27

DivMan, тебе когда надоест строить свой маня-мирок? Прежде чем подумать, что ты умнее браузера и авторов жабы скрипучей, подумай что может быть это ты тупишь и пойди почитай документацию, благо на этом сайте ее на русском дофига.

DivMan 14.09.2016 15:04

Как можно исправить, что бы не ругалась консоль при клике на вложенное меню?

http://plnkr.co/edit/Vp0yRLM4CpJEe0gzDPtr?p=preview

Manyasha 14.09.2016 16:11

DivMan,
у Вас обработка события срабатывает и на внутренних списках, нужно проверять, точно ли мы нажали на элемент списка с классом item:
<!DOCTYPE html>
<html>

  <head>
    <link rel="stylesheet" href="style.css">
    <style>
	.none{display: none}
	.block{display: block}
	</style>
<script>
window.onload=function(){
	var item = document.querySelectorAll('.item');
	for(var i = 0; i < item.length; i++){
		item[i].addEventListener('click', function(e){
			if (e.target.classList == "item"){
				var target = e.target.parentNode.childNodes
				for(var m = 0; m <target.length; m++){
					if(target[m].nodeType == 1){
						target[m].children[0].classList.remove('block');
					}
					
				}
				if(e.target.children[0].classList.contains('none')){
					e.target.children[0].classList.toggle('block');
				}
			}
		});
	}
}
</script>
  </head>

  <body>
   		<div class="main-menu">
			<ul class="ul">
				<li class="item">Игры
					<ul class='none'>
						<li>Гонки</li>
						<li>Стрелялки</li>
					</ul>
				</li>
				<li class="item">Софт
					<ul class='none'>
						<li>windows</li>
						<li>Антивирусы</li>
					</ul>
				</li>
				<li class="item">Софт
					<ul class='none'>
						<li>windows</li>
						<li>Антивирусы</li>
					</ul>
				</li>
				<li class="item">Софт
					<ul class='none'>
						<li>windows</li>
						<li>Антивирусы</li>
					</ul>
				</li>
				<li class="item">Софт
					<ul class='none'>
						<li>windows</li>
						<li>Антивирусы</li>
					</ul>
				</li>
			</ul>
		</div>
		
		<script src="script.js"></script>
  </body>

</html>


Часовой пояс GMT +3, время: 08:55.