Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.04.2016, 22:25
Профессор
Отправить личное сообщение для DivMan Посмотреть профиль Найти все сообщения от DivMan
 
Регистрация: 08.03.2016
Сообщений: 429

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

https://jsfiddle.net/hyzLnvgx/1/
Ответить с цитированием
  #2 (permalink)  
Старый 15.04.2016, 23:00
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

Какие еще переменные undefined?
Ответить с цитированием
  #3 (permalink)  
Старый 16.04.2016, 08:05
Профессор
Отправить личное сообщение для DivMan Посмотреть профиль Найти все сообщения от DivMan
 
Регистрация: 08.03.2016
Сообщений: 429

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

item
undefined
Ответить с цитированием
  #4 (permalink)  
Старый 16.04.2016, 08:15
Профессор
Отправить личное сообщение для DivMan Посмотреть профиль Найти все сообщения от DivMan
 
Регистрация: 08.03.2016
Сообщений: 429

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

https://jsfiddle.net/hyzLnvgx/3/
Ответить с цитированием
  #5 (permalink)  
Старый 16.04.2016, 10:46
Аватар для Alexander Belov
Профессор
Отправить личное сообщение для Alexander Belov Посмотреть профиль Найти все сообщения от Alexander Belov
 
Регистрация: 12.03.2015
Сообщений: 173

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

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

3. Почитайте также про display и position.
Ответить с цитированием
  #6 (permalink)  
Старый 26.08.2016, 16:18
Профессор
Отправить личное сообщение для DivMan Посмотреть профиль Найти все сообщения от DivMan
 
Регистрация: 08.03.2016
Сообщений: 429

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

Пишет, то, что это не узел. Почему это не узел, если searchSpan.length-1 это тоже элемент?
Ответить с цитированием
  #7 (permalink)  
Старый 26.08.2016, 17:26
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

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

searchSpan.length-1 не элемент, а писло.
Ответить с цитированием
  #8 (permalink)  
Старый 26.08.2016, 17:27
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

DivMan, тебе когда надоест строить свой маня-мирок? Прежде чем подумать, что ты умнее браузера и авторов жабы скрипучей, подумай что может быть это ты тупишь и пойди почитай документацию, благо на этом сайте ее на русском дофига.
Ответить с цитированием
  #9 (permalink)  
Старый 14.09.2016, 15:04
Профессор
Отправить личное сообщение для DivMan Посмотреть профиль Найти все сообщения от DivMan
 
Регистрация: 08.03.2016
Сообщений: 429

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

http://plnkr.co/edit/Vp0yRLM4CpJEe0gzDPtr?p=preview
Ответить с цитированием
  #10 (permalink)  
Старый 14.09.2016, 16:11
Профессор
Отправить личное сообщение для Manyasha Посмотреть профиль Найти все сообщения от Manyasha
 
Регистрация: 21.09.2015
Сообщений: 196

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>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сделать переменную видимой вне addEventListener romeonil Events/DOM/Window 4 24.10.2015 00:52
addEventListener для input text jonrut Events/DOM/Window 5 23.11.2014 11:23
addEventListener в iFrame Dimasick Events/DOM/Window 1 28.06.2014 18:43
Расширение функциональности метода addEventListener Nikola Flamel Events/DOM/Window 2 14.11.2013 16:22
addEventListener фаза mycoding Общие вопросы Javascript 2 31.01.2010 13:52