我有个问题。我使用具有以下结构的jquery superfish菜单
<div id="menu" class="ge-navigation-item">
<!-- navigation -->
<ul id="test" class="sf-menu sf-vertical sf-js-enabled sf-shadow">
<li><a href="index.html">Home</a></li>
<li><a href="#">About</a>
<ul>
<li><a href="index.html">Index</a></li>
<li><a href="#">Page</a>
<ul>
<li><a href="#">menu item</a></li>
<li><a href="#">menu item</a></li>
<li><a href="proef.html">menu item</a></li>
<li><a href="index.html">index</a></li>
<li><a href="#">menu item</a></li>
</ul>
</li>
<li><a href="page-fullwidth.php">Page - Full Width</a></li>
</ul>
</li>
<li><a href="showcase.php">Showcase</a></li>
</ul>
<!-- /navigation -->
</div>我想要的是,点击一个链接,菜单结构将是可见的
因此,单击index.html将在具有href index.html的所有链接上设置一个链接,但单击proef.html将在href proef.html -页面-关于上设置一个活动类
到目前为止,我已经试过了,但效果不好。
var path = window.location.toString().split("/")
path = path[path.length - 1]
//alert (path);
if (path)
$("#test a[href='" + path + "']").addClass("actief");
$("#test ul li:has(a) a[href='" + path +
"']").parent().parent().parent().addClass("actief");发布于 2010-12-15 05:17:49
欢迎来到stackoverflow。试试这个:
var path = window.location.pathname.split('/');
path = path[path.length-1];
if (path !== undefined) {
$("#menu3").find("a[href='" + path + "']").addClass("actief");
}这应该将类附加到与当前url的最后一项匹配的任何链接。如果您正在寻找一种不同的行为,请详细说明!
更新
实际上,看起来你需要这个:
var path = window.location.pathname.split('/');
path = path[path.length-1];
if (path !== undefined) {
$("#menu3")
.find("a[href$='" + path + "']") // gets all links that match the href
.parents('li') // gets all list items that are ancestors of the link
.children('a') // walks down one level from all selected li's
.addClass('actief');
}这将把类放在链上的每个a元素上。
发布于 2011-08-26 22:03:11
我们做了一些类似的事情:
$("#sample-menu-1").find("a[href='"+window.location.pathname+"']").each(function() {
$(this).parents('li').addClass("current");
$(this).closest('ul').css("visibility","visible").css("display","block");
});它似乎可以工作,但当鼠标移到菜单上时,菜单不能保持当前位置。
=== 更新 ===
将鼠标悬停在菜单上后,父用户界面似乎被重置为不显示
https://stackoverflow.com/questions/4444212
复制相似问题