Возникли проблемы с использованием jQuery для переключения элемента навигации со сдвигом вниз

#jquery

#jquery

Вопрос:

У меня есть панель навигации, на которой при наведении курсора на элемент отображается следующий список. Но когда моя мышь покидает исходную навигацию, список исчезает. Я хочу, чтобы список оставался, когда он заполняется. Не могли бы вы, пожалуйста, помочь?

http://jsfiddle.net/GxshD/

Комментарии:

1. как долго вы хотите, чтобы это оставалось?

Ответ №1:

Поскольку ваш обработчик событий привязан к вашему li.drop элементу, вам необходимо инкапсулировать дочернее меню в этот элемент следующим образом…

 <li class="drop">
    <a href="#">Recruiter Tools</a>
    <div class="recToolbardrop" style="display:none;">
        <ul class="recToolbardrop">
            <li><a href="#">Featured Tools</a></li>
            <li><a href="#">All Tools</a></li>
        </ul>
    </div>
</li>
  

Ответ №2:

Просто удалите вторую функцию из вашего jQuery. Это должно отображаться…

 $(document).ready(function () {
    $('li.drop').mouseenter(function () {
        $('div.recToolbardrop').slideDown('fast');
    });
});
  

Комментарии:

1. «Я хочу, чтобы список оставался при наведении на него курсора», похоже, подразумевает, что он хочет, чтобы он снова исчез, когда он не наводит на него курсор.

Ответ №3:

http://jsfiddle.net/daybreaker/fgtrR/

Поместите ul.recToolbardrop внутрь li.drop , чтобы li.drop инкапсулировать его.

Он зависает, потому что вы больше не зависаете li.drop технически, потому что вы отображаете совершенно новый div под ним. Если вы вставите ul.recToolbardrop в li.drop , вы не уйдете li.drop при наведении курсора мыши на любой из новых li элементов.

Кроме того, для справки, есть несколько чисто CSS-примеров того, как это сделать, если вы специально не пытаетесь поддерживать старые браузеры, которые не распознают :hover все CSS-теги.

Ответ №4:

добавьте событие mouseleave в div.rectoolbarddrop, а не в li.drop