Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.12.2013, 11:58
Новичок на форуме
Отправить личное сообщение для alex_han Посмотреть профиль Найти все сообщения от alex_han
 
Регистрация: 06.12.2013
Сообщений: 3

Как узнать родительский элемент?
Всем доброго времени суток!

Вопрос от новичка в JS:

Есть горизонтальное меню с выпадающим подменю организаваное через ul-li. Стандартным CSS получается иметь всегда выделенный только один элемент под курсором при помощи hover. Я хочу оставлять выделенным пункт меню при переходе на подменю. Для этого мне нужно пункту меню поменять свойство. Статически это решено так:
<ul class="menu" id="main-menu">
<li name="about"><a href="#">Телефоны</a>
<ul>
<li onmouseover="mv(1)" onmouseout="mv(2)"><a href="/">Nokia</a></li>
...
function mv(i)
{if (document.)
switch (i)
{
case 1:
pr=document.getElementsByName('about')[0];
pr.style.backgroundColor='#ffffff';
brake;
case 2:
pr=document.getElementsByName('about')[0];
pr.style.backgroundColor='transparent';
}
}

Но как можно это сделать гибче, чтобы каждому li не прописывать onmouseover и onmouseout...
Я понимаю, что в функции нужно определять, если активен элемент из подменю, то подняться на уровень выше и поменять у родителя свойство, и если он теряет фокус мыши то отменять установленное свойство...но я не знаю как определить, что выбран элемент подменю (хотя можно использовать ID для каждого подменю элемента, но тогда пропадает универсальность).

Хотелось бы иметь код, привязанный только к такой структуре

<ul class="menu" id="main-menu">
<li>
<ul>
<li></li>
<li></li>
</ul>
</li>
</ul>
--------------------------------------------------------------------
Best regards.
Alex
Ответить с цитированием
  #2 (permalink)  
Старый 06.12.2013, 13:26
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от alex_han
Но как можно это сделать гибче
В инете валом примеров для "многоуровнего меню"... Тебе нужно просто посмотреть те примеры...
Ответить с цитированием
  #3 (permalink)  
Старый 06.12.2013, 16:23
Новичок на форуме
Отправить личное сообщение для alex_han Посмотреть профиль Найти все сообщения от alex_han
 
Регистрация: 06.12.2013
Сообщений: 3

Ksa, спасибо, но в таком случае всех в форуме можно направлять почитать доку или порыться в инете, купить умную книгу...

Хорошо, я тогда конкретизирую вопрос:
Есть родительский объект с классом "MyClass" и ID="MyID" (первый уровень) на странице с вложенными объектами на 3 уровня.
1. Можно ли перехватить наведение/выход мыши на объект третьего уровня, не прописывая на этом уровне обработчик событий onmouseover/onmouseout
2. Как определить родителя 2 уровня , при наведении/выход мыши на.с объект третьего уровня... Желательно чтобы функция отрабатывала только для дочерних объектов "MyID".
Ответить с цитированием
  #4 (permalink)  
Старый 06.12.2013, 16:37
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от alex_han
в таком случае всех в форуме можно направлять почитать доку или порыться в инете, купить умную книгу
Не стоит себя сразу равнять "со всеми"... Начинай учиться отвечать только за себя.

Сообщение от alex_han
Хорошо, я тогда конкретизирую вопрос
Я настаиваю на том, что ты роешь подземный ход на чердак. Посмотри нормальные примеры и сделай правильные выводы...
Ответить с цитированием
  #5 (permalink)  
Старый 06.12.2013, 17:55
Новичок на форуме
Отправить личное сообщение для alex_han Посмотреть профиль Найти все сообщения от alex_han
 
Регистрация: 06.12.2013
Сообщений: 3

Ksa, я нашел те функции JS которые мне были нужны...но только в доке по JS, а не в примерах, выложеных в инет.

но, прошу учесть:
1. Я не буду искать и копировать код, который я не знаю, что он эффективен а на разбор чужого написанного кода, уйдет во много раз больше времени, чем получить интересующий ответ у ЗНАЮЩИХ людей.
2 создавая код под себя, я решаю вопрос с пониманием кода и если необходимо, то быстрого нахождения и фикса слабых мест, если такие обнаружатся...а также написание тест кейсов, доки и правильных коментов
3 Если бы один создавал, а другие только пользовались, то писали бы девелоперы на одном языке программирования... и ждали выхода патча для устранение багов....

4. ну и последнее... Форумы создаются для того, чтобы оперативно спросить людей знающих быстрой помощи, а не для того чтобы выслушивать бесполезные поучающие советы ...

Всего наилучшего.
-----------------
Alex
Ответить с цитированием
  #6 (permalink)  
Старый 06.12.2013, 22:28
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Ты специалист - тебе видней...
Ответить с цитированием
  #7 (permalink)  
Старый 06.12.2013, 23:01
Профессор
Отправить личное сообщение для Batyabest Посмотреть профиль Найти все сообщения от Batyabest
 
Регистрация: 14.09.2013
Сообщений: 252

Сообщение от alex_han Посмотреть сообщение
Форумы создаются для того, чтобы оперативно спросить людей знающих быстрой помощи, а не для того чтобы выслушивать бесполезные поучающие советы ...
Вот с этим тут у многих проблемы... Очень уж поучить любят...
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Как узнать по какой ссылке кликнули? Rooner jQuery 3 19.12.2012 17:14
Как перевести фокус на следующий элемент? Shitbox2 jQuery 3 03.11.2012 15:57
Как передать элемент в переменную из функции kichSman jQuery 3 12.07.2011 22:16
Как узнать находится ли DOM элемент в области видимости? phgrey Общие вопросы Javascript 4 22.03.2011 19:05