我发现了一些非常简单的菜单代码,并且在没有插件的情况下仅使用 jquery 就可以很好地工作。我想做的是使其具有粘性,以便在链接到新页面时,该页面将菜单(如有必要)扩展到链接的项目,并在当前 window.location 与标签匹配时将该项目突出显示为活动的链接。我一直在寻找 Dom 控制台,但如果幸运的话,我认为必须有一个更简单的 jquery 解决方案。任何关于如何实现这一目标的建议都非常感谢。谢谢
$(document).ready(function() {
$('#menu ul').hide();
/* Note the following three lines added as working solution to original question. */
/* works for fully qualified url: i.e. http://www.mydomain.com/mypage.ext */
/* also note that addClass('current') requires .current class in your css */
var currentLink = $("a[href='" + location.href + "']");
currentLink.parents("ul:hidden").slideDown("normal");
currentLink.filter('a:first').addClass('current');
/* end of solution fix */
$('#menu li a').click(
function() {
var openMe = $(this).next();
var mySiblings = $(this).parent().siblings().find('ul');
if (openMe.is(':visible')) {
openMe.slideUp('normal');
} else {
mySiblings.slideUp('normal');
openMe.slideDown('normal');
}
});
});
菜单如下:
<ul id="menu">
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a>
<ul class="submenu">
<li><a href="#">3-1</a>
<ul>
<li><a href="#">3-1-1</a></li>
<li><a href="#">3-1-2</a></li>
<li><a href="#">3-1-3</a></li>
</ul>
</li>
<li><a href="#">3-2</a>
<ul>
<li><a href="#">3-2-1</a></li>
<li><a href="#">3-2-2</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#">4</a></li>
<li><a href="#" title="">5</a>
<ul>
<li><a href="#">5-1</a></li>
<li><a href="#">5-2</a></li>
<li><a href="#">5-3</a></li>
</ul>
</li>
<li><a href="#" title="">6</a>
<ul>
<li><a href="#">6-1</a></li>
<li><a href="#">6-2</a></li>
<li><a href="#">6-3</a></li>
</ul>
</li>
<li><a href="#" title="">7</a></li>
<li><a href="#" title="">8</a>
<ul>
<li><a href="#">8-1</a></li>
<li><a href="#">8-2</a></li>
<li><a href="#">8-3</a></li>
</ul>
</li>
<li><a href="#" title="">9</a></li>
</ul>