我正在使用 Jquery Toggle 侧边栏菜单,因此菜单中有一个向下箭头可将菜单向下推以在每次单击时显示子菜单。我的问题是当没有子菜单/子菜单时,向下箭头仍然显示,当你点击它时,它会吃下面的同级菜单。我正在使用 Silverstripe 中的菜单。如何仅在有子菜单/子菜单时才显示箭头?
/ ------------------------------------------------------------这里是我的切换菜单 js--------------------------------------------- ---- /
$(document).ready(function() {
$('.second_level').hide();
$("div.menu > h3").css("background", "url(themes/tutorial/images/menuarrowdown.gif) no-repeat right");
$('div.menu > h3').click(function() {
$(this).next().slideToggle('fast', function() {
//set arrow depending on whether menu is shown or hidden
if ($(this).is(':hidden')) {
$(this).prev().css("background", "url(themes/tutorial/images/menuarrowdown.gif) no-repeat right");
} else {
$(this).prev().css("background", "url(themes/tutorial/images/menuarrowup.gif) no-repeat right");
}
return false;
});
});
});
/ ------------------------------------这是我的html代码-------- -------------------------------------------------- /
<div id="productmenu"> <!-- productmenu starts -->
<div class="menu">
<h3><a href="#">Category 1</a></h3>
<ul class="second_level">
<li><a href="page.html">Option 1</a></li>
<li><a href="page.html">Option 2</a></li>
</ul>
</div> <!-- /menu -->
<div class="menu">
<h3><a href="#">Category 2</a></h3>
</div> <!-- /menu -->
<div class="menu">
<h3><a href="#">Category 3</a></h3>
<ul class="second_level">
<li><a href="page.html">Option 1</a></li>
<li><a href="page.html">Option 2</a></li>
<li><a href="page.html">Option 3</a></li>
</ul>
</div> <!-- /menu -->
</div><!-- /productmenu -->
/ ------------------------------------这是我的页面.ss-------- --------------------------------------- /
<% control Menu(2) %>
<h3><a href="$Link" title="Go to the "{$Title}" page">$MenuTitle</a></h3>
<% if Children %> <ul class="second_level">
<% control Children %>
<li class="$LinkingMode"><a href="$Link" title="Go to the "{$Title}" page">$MenuTitle</a></li>
<% end_control %></ul>
<% end_if %>
<% end_control %>
感谢您的帮助。请参阅下面的示例图片。
谢谢山姆
编辑:要解决吃掉菜单的问题,只需将 <% control Menu(2) %> 移动到菜单的完成 div 上方和 <% end_control %> 下方。Js 解决方案是使用 Matt 的新 Js。谢谢马特、伊恩克和米洛!我感谢您的帮助!