#javascript #jquery #html #wordpress #slidetoggle
#javascript #jquery #HTML #wordpress #slidetoggle
Вопрос:
Я использую jQuery для нескольких переключаемых меню на моем сайте. Однако, если я изменю его начальную загрузку с .показать кому .скрыть это не сработает.
Мой js-файл:
jQuery(document).ready(function($) {
$('div ul.menu').hide();
$('h2.trigger').click(function() {
$(this).toggleClass("active").next().slideToggle('slow');
return false;
});
});
И мой html для моих нескольких меню выглядит так:
<aside class="widget">
<h2 class="trigger">Portfolio</h2>
<div>
<ul class="menu">
<li></li>
</ul>
</aside>
<aside class="widget">
<h2 class="trigger">Portfolio</h2>
<div>
<ul class="menu">
<li></li>
</ul>
</aside>
<aside class="widget">
<h2 class="trigger">Portfolio</h2>
<div>
<ul class="menu">
<li></li>
</ul>
</aside>
Есть идеи, почему это не сработает?
Комментарии:
1. У вас есть три открытых
<div>
контейнера. Возможно, опечатка или вы не поняли, что не можете оставить их открытыми. Валидатор W3C улавливает подобные ошибки.
Ответ №1:
Просто избавьтесь от своего дополнительного div
тега. Вы next()
выбираете это вместо ul.меню, на которое вы пытаетесь настроить таргетинг. Вот так:
<aside class="widget">
<h2 class="trigger">Portfolio</h2>
<ul class="menu">
<li>Test</li>
</ul>
</aside>
<aside class="widget">
<h2 class="trigger">Portfolio</h2>
<ul class="menu">
<li>Test</li>
</ul>
</aside>
<aside class="widget">
<h2 class="trigger">Portfolio</h2>
<ul class="menu">
<li>Test</li>
</ul>
</aside>
Вам также нужно будет изменить следующую строку
$('div ul.menu').hide();
чтобы не указывать div
$('ul.menu').hide();
Примечание: причина, по которой это работает с .show(), заключается в том, что ваш div отображается по умолчанию, поэтому тот факт, что .show() вызывается не для того элемента, остается незамеченным.
Комментарии:
1. Я ввел код неправильно, моя ошибка. Предполагается, что div закрывается. Div — это результат того, как WordPress генерирует пользовательские меню в WP 3.0. Я не верю, что есть способ их удалить, но я изучаю.
2. Вы были правы, и я узнал, как удалить бесполезные div из меню WordPress.