Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Всплывающее меню (unbind работает как-то неправильно) (https://javascript.ru/forum/jquery/26303-vsplyvayushhee-menyu-unbind-rabotaet-kak-nepravilno.html)

Neokortex 04.03.2012 00:56

Всплывающее меню (unbind работает как-то неправильно)
 
Привет, пробую написать простой скрипт всплывающего меню на jquery.

Суть: при наведении на пункт меню всплывает его подменю. Если пользователь убрал мышь меню скроется. Если пользователь навел мышь на это подменю то меню скрываться не должно.

У меня оно скрывается, потом резко появляется.

Результат здесь: нажмите на "Каталог товаров", а потом наведите на "Каталог техники" - всплывет меню.

FINoM 04.03.2012 07:51

Наверно из-за того, что между пунктами (родительским и дочерним) есть однопиксельный отступ.
А вообще, так пункты лучше не верстать (я имею в виду делать родительский и дочерний пункты независимыми блоками). Лучше так:
<ul>
  <li class="haschildren">
    Родительский пункт
    <ul>
      <li>Дочерний пункт</li>
      <li>Дочерний пункт</li>
    </ul>
  </li>
  <li>Другой пункт</li>
</ul>

Таким образом можно вешать обработчик наведения на .haschildren (по которому будет показываться .haschildren ul) и не париться. Можно даже одним CSS обойтись, строя меню на :hover

Rootpassword 04.03.2012 09:24

Одним CSS не получится, старый ИЕ не будет работать.

Neokortex 04.03.2012 12:34

Цитата:

Сообщение от FINoM (Сообщение 161292)
А вообще, так пункты лучше не верстать (я имею в виду делать родительский и дочерний пункты независимыми блоками).

Они у меня именно так и сверстаны.

Цитата:

Сообщение от FINoM (Сообщение 161292)
Таким образом можно вешать обработчик наведения на .haschildren (по которому будет показываться .haschildren ul) и не париться. Можно даже одним CSS обойтись, строя меню на :hover

Да, согласен. Но у меня по дизайну дочерний список позиционирован абсолютно - поэтому это вариант не подходит.


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