Помогите с меню jQuery - PullRequest
       0

Помогите с меню jQuery

1 голос
/ 04 мая 2011

Html:

<ul id="menu">
    <li>Menu 1</li>
    <li>Menu 2
        <ul>
            <li class="submenu">something</li>
        </ul>
    </li>
    <li>Menu 3</li>
</ul>

jQuery:

$('#menu > li:has(.submenu)').hover(function() {
    $(this).children('ul').show().addClass('active');
}, function() {
    $(this).children('ul').hide().removeClass('active');    
});

http://jsfiddle.net/mXTzy/

Теперь, если отображается .submenu, я хочу родительский элемент liиметь класс active (и удаляется при наведении мыши).

Буду признателен за любую помощь с этим.

Большое спасибо

Ответы [ 3 ]

1 голос
/ 04 мая 2011

Ладно, понял:

$('#menu > li:has(.submenu)').hover(function() {
    $(this).addClass('active').children('ul').show();
}, function() {
    $(this).removeClass('active').children('ul').hide();    
});

.. хотя и некрасиво.

0 голосов
/ 04 мая 2011

Вы ищете это?

jsFiddle

$('#menu > li').hover(function() {
    $(this).children('ul').show();
    $(this).addClass('active');
}, function() {
    $(this).children('ul').hide();  
   $(this).removeClass('active');  
});
#meun li { float: left; }
#menu li a { float; left; padding:10px; }
#menu li ul { display: none; }
#menu li.active  { background:#dd0; }
<ul id="menu">
    <li>Menu 1</li>
    <li>Menu 2
        <ul>
            <li class="submenu">something</li>
        </ul>
    </li>
    <li>Menu 3</li>
</ul>
0 голосов
/ 04 мая 2011

ИДК, если это поможет вам или нет, но ...

  1. попробуйте использовать: содержит селектор (http://api.jquery.com/contains-selector/)
  2. вы можете использовать toggleClass ( http://api.jquery.com/toggleClass/)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...