#javascript #jquery #css #jquery-animate
#javascript #jquery #css #jquery-анимировать
Вопрос:
Итак, хорошо. Я пытаюсь создать своего рода выпадающее меню, используя fadeToggle().
http://westrock.juggernautwebsites.com / — это то место, где в настоящее время находится сайт.
Как вы можете видеть, когда пользователь выбирает ‘Properties’, происходит fadeToggle. Однако после выпадающего списка и пользователь хочет выбрать li из выпадающего списка свойств, он не может этого сделать (я знаю, что у меня есть return false; set, но это должно было быть для исходного ul, нет?)
Кроме того, когда отображаются дочерние элементы, при наведении курсора мыши на About эффект :hover отображается на дочернем элементе свойств li.
Я поражен. Любая помощь, с благодарностью.
$('#menu-item-13').click(function() {
$(this).children('ul').fadeToggle({
duration: 200
});
return false;
});
* РЕДАКТИРОВАТЬ
Я чувствую, что мне нужно ограничить влияние css и jQuery на дочерние элементы списка и a, но я не знаю, как это сделать. Я думал, что дочерние элементы переходят только на один уровень вниз по DOM, и поскольку я выбрал ‘ul’, функция не повлияет на элементы списка…
Комментарии:
1. Когда я выбираю «Свойства», ничего не происходит.
Ответ №1:
Ваш пример для меня вообще не работает, но, если я вас правильно понимаю, вы хотите, чтобы на дочерний элемент ul
не влиял обработчик щелчков, прикрепленный к родительскому элементу. Вы можете сделать это:
$('#menu-item-13 > ul').click(function(e){
e.stopPropagation();
// ... do your thing
});
Это в основном останавливает переход щелчка по ul
к родительскому #menu-item-13
элементу. Из-за этого fadeToggle
также не будет запускаться при нажатии на ul, поэтому, если это все еще необходимо, вам придется добавить это в ul
щелчок.
Комментарии:
1. Извините, я, должно быть, работал над этим или чем-то еще в то время. Я добавил e.stopPropagation, но я не могу запустить fadeToggle, нажав на Свойства.
2.
$('#primary li a').click(function(e) { $(this).next().fadeToggle({ duration: 200 }); return false; });
делает в основном то, что я хочу, однако возвращает false; отключает все привязки в навигаторе, где я хочу отключить только ссылки, у которых есть дочерние элементы (т. Е. выпадающие уровни)3. Похоже, у вас уже есть отдельные классы для элементов, которые отличают это, так почему бы не использовать это?
.menu-item-type-custom
Ответ №2:
Спасибо всем за помощь! Вот что я в конечном итоге использовал.
$('#primary li').hover(function() {
$(this).children('ul').fadeToggle({
duration: 200
});
});
$('menu-item-54').click(function() {
return false;
});
То, что я пытался выполнить, при наведении курсора мыши (или щелчке) открывался subnav.