Выпадающее меню
Добрый день. Решил сделать простейшее выпадающее меню на javascript, но оно не работает. что я делаю неправильно?
http://jsfiddle.net/wyxk7uqd/1/ PS не судите строго |
Я посмотрел. У тебя есть ошибки, потому и не работает.
Я бы советовал тебе пользоваться jQuery, если ты толком не понимаешь как работает то или иное. Если все же не поймешь, то пиши, будем разбираться) |
Вообще-то это люди в здравом уме такое меню на css делают, если нет особых причин делать на js.
|
Цитата:
|
это не для какого-то проекта. я изучаю js, именно поэтому решил сделать на js =)
|
Тогда совет про jQuery не актуален) К пониманию js эта либа не приведет)
Забей на всякие attachEvent. Ты же не на IE8 запускаешь свои поделки? getElementsByClassName возвращает массив, а не один элемент. А у массива нет метода addEventListener. Цикл for() в помощь. Ну и на самом деле это не массив, а NodeList, у него нет forEach, indexOf и тд. - это для справки. Ну и строчка с list становится тоже не актуальной. Получай list прям в обработчиках события. И получаешь ты его неправильно. firstChild - это будет текстовая нода (Home). Нужно либо link.querySelector('.list') либо link.firstElementChild |
|
рони, в IE8, в обработчике, привязанном через attachEvent, this будет указывать на window )
А вот children, да, будет работать, в отличие от firstElementChild. Правда теоретически, если первой нодой будет html-комментарий, то children[0] укажет на него ) |
Хех, ну и getElementsByClassName тогда надо менять на querySelectorAll, иначе в IE8 скрипт все равно не будет работать))
|
Часовой пояс GMT +3, время: 01:56. |