Jquery 进入新页面时,保持展开菜单打开
我已经创建了一个简单的手风琴菜单(有点),我遇到的第一个问题是,当我进入一个页面时,我想让相应的锚激活,我已经用脚本解决了它,但另一个问题是,当我从一个扩展菜单进入另一个页面时,我想在我到达打开的页面时打开扩展菜单。我试过很多方法,但都不管用 jsfiddle: HTMLJquery 进入新页面时,保持展开菜单打开,jquery,html,accordion,Jquery,Html,Accordion,我已经创建了一个简单的手风琴菜单(有点),我遇到的第一个问题是,当我进入一个页面时,我想让相应的锚激活,我已经用脚本解决了它,但另一个问题是,当我从一个扩展菜单进入另一个页面时,我想在我到达打开的页面时打开扩展菜单。我试过很多方法,但都不管用 jsfiddle: HTML 在母版页上使用以下jQuery: $(document).ready(function(){ var pageTitle = window.location.pathname.replace(/^.*\/([^/]*)
在母版页上使用以下jQuery:
$(document).ready(function(){
var pageTitle = window.location.pathname.replace(/^.*\/([^/]*)/, "$1");
$('#menu li').removeClass("active");
$("#submenu ul").hide();
///// Apply active class to selected page link
$('#menu li a').each(function () {
if ($(this).attr('href').toLowerCase() == pageTitle.toLocaleLowerCase())
{
$(this).closest('li').closest('li').addClass('active');
if($(this).parent().closest('li').attr('class') == 'submenu')
$("#submenu ul").show();
}
});
});
下面是一个AJAX解决方案,它将帮助您在调用各种页面时保持导航状态: 粗略的HTML标记:
<body>
<ul id="menu">
<li><a href="index.html">index</a></li>
<li><a href="forum.html">forum</a></li>
<li id="submenu"><span class="s_act">links</span>
<ul>
<li><a href="index1.html">index</a></li>
<li><a href="index2.html">index</a></li>
</ul>
</li>
</ul>
<div id="content">
<!--Page Content Goes Here-->
</div>
</body>
你有一个共同的母版页,还是你在每一页上重复你的导航?那是一个.NET Web表单母版页吗?我不知道太多,我只是一个网页设计师,只知道html,css的东西..不用担心,我只是想知道你需要做的是通过AJAX加载你的html页面。您所经历的是网站是无状态的。我用您的脚本替换了我的整个脚本,它可以工作,但在主页中删除了活动类,并且菜单在主页中展开,我只希望在单击它或单击它下面的子菜单时展开。是的,这是预期的,因为主页链接位于级别l。检查此编辑的答案。菜单在主页中仍处于展开状态,只有在单击或其下的子页面打开时才应激活它。您使用哪个css类来展开菜单?我使用。单击()函数在页面上展开子菜单。在页面加载时,它被.hide()函数隐藏,请参阅第一篇文章中的脚本。我尝试了这个,我无法导航到子页面,当我在该页面时,它也不会使主页链接处于活动状态。
$(document).ready(function(){
var pageTitle = window.location.pathname.replace(/^.*\/([^/]*)/, "$1");
$('#menu li').removeClass("active");
$("#submenu ul").hide();
///// Apply active class to selected page link
$('#menu li a').each(function () {
if ($(this).attr('href').toLowerCase() == pageTitle.toLocaleLowerCase())
{
$(this).closest('li').closest('li').addClass('active');
if($(this).parent().closest('li').attr('class') == 'submenu')
$("#submenu ul").show();
}
});
});
<body>
<ul id="menu">
<li><a href="index.html">index</a></li>
<li><a href="forum.html">forum</a></li>
<li id="submenu"><span class="s_act">links</span>
<ul>
<li><a href="index1.html">index</a></li>
<li><a href="index2.html">index</a></li>
</ul>
</li>
</ul>
<div id="content">
<!--Page Content Goes Here-->
</div>
</body>
$(document).ready(function(){
$("#submenu ul").hide();
$("#submenu").click(function () {
$("span.s_act").addClass("submenu_act");
$("#submenu ul").show();
});
$("#submenu ul li a").click(function(e){
e.preventDefault();
var page = $(this).attr('href');
$.get(page, function(html){
$('#content').html(html);
});
});
});