【发布时间】:2012-11-28 14:38:42
【问题描述】:
我有一个简单的 Wordpress 主题,其侧边栏菜单包含主菜单项和子菜单项。菜单出现在所有页面上。这是菜单的呈现方式:
<li id="menu-item-55" class="menu-item "><a href="?page_id=22">Main Menu Item 1</a></li>
<li id="menu-item-120" class="menu-item "><a href="#">Main Menu Item 2</a>
<ul class="sub-menu">
<li id="menu-item-119" class="menu-item"><a href="?page_id=101">Sub Menu Item 1</a></li>
<li id="menu-item-118" class="menu-item"><a href="?page_id=104">Sub Menu Item 2</a></li>
<li id="menu-item-117" class="menu-item"><a href="?page_id=109">Sub Menu Item 3</a></li>
</ul>
</li>
<li id="menu-item-53" class="menu-item "><a href="?page_id=26">Main Menu Item 3/a></li>
我正在使用一个简单的 jQuery 来切换子菜单项:
$(document).ready(function() {
$("#menu-item-120").click(function() {
$('.sub-menu').slideToggle('medium');
});
});
这对于我的一个小问题的要求基本上没问题 - 我需要在页面加载时最初隐藏子菜单。在页面加载后使用 jQuery 隐藏菜单项会导致菜单短暂显示,这是不可接受的。
为了增加问题,理想情况下,如果正在显示子页面之一,则应始终显示子菜单。我很高兴在 ids 等中进行硬编码,只是为了让事情正常进行,如果有任何提示,我将不胜感激。
【问题讨论】:
-
你不能使用 CSS {display:none} 隐藏子菜单并使用 Jquery 显示它们吗?试试api.jquery.com/slideDown
-
我认为@DejoDekic 的建议可以解决第一个问题。对于第二部分,“如果其中一个子页面被隐藏,则应始终显示子菜单”是什么意思?
-
这行得通 - 非常感谢。我已经编辑了我的原始问题以纠正我的愚蠢句子 - 我的意思是“如果正在显示子页面之一,则应始终显示子菜单”