поэтому я пытаюсь сделать небольшой эффект в моем выпадающем меню, но я не знаю, как правильно использовать функцию наведения и слайд-вниз
$('nav > div > ul > li').hover(function() {
$('nav > div > ul > li > ul').stop(true, true).slideDown(200);
}, function() {
$('nav > div > ul > li > ul').stop(true, true).slideUp(200);
});
это то, что у меня есть сейчас, это не работает, он показывает мое подменю, независимо от того, что я нахожу, я хочу, чтобы он работал так, что он находится на элементе и только элемент, который имеет подменю.
РЕДАКТИРОВАТЬ: FIDDLE
Попробуйте эту скрипку
Я бы предложил добавить ID для селекторов, как показано ниже.
JS $ (document).ready(function() {
$('#parent').hover(function() {
$('#submenu').stop(true, true).slideDown(200);
}, function() {
$('#submenu').stop(true, true).slideUp(200);
});
});
Я уверен, что есть более эффективный способ сделать это, но это хорошее начало.
РЕДАКТИРОВАТЬ
Я думаю, что я нашел актуальную проблему, почему она не скользит, как вы этого хотите, у вас есть стиль, который заставляет его показывать вместо использования JS, чтобы он появился
Удали это...
nav > div > ul > li:hover > ul {
display: block;
}
или попробуйте эту скрипку http://jsfiddle.net/MzJNT/9/
Вы можете просто добавить id к <li>
который должен упасть.
HTML:
<li id="dropdown"><a href="#">Parent</a>
jQuery:
$('nav > div > ul > li#dropdown').hover(function() {
Скрипт: Fiddle
Кроме того, вы можете проверить <ul>
внутри элемента:
jQuery:
$( document ).ready(function() {
$('nav > div > ul > li').hover(function() {
if (this.has('ul')) {
$('nav > div > ul > li > ul').stop(true, true).slideDown(200);
}
}, function() {
if (this.has('ul')) {
$('nav > div > ul > li > ul').stop(true, true).slideUp(200);
}
});
});
Скрипт: Fiddle
Затем вы можете проверить <li>
внутри этого, если хотите быть действительно конкретным.