我是jQuery的新手,看起来像我需要你的帮助后,无法从谷歌得到任何东西。我有一个正常的手风琴菜单,包括菜单(level-1)和子菜单(level-2)。在大多数情况下,只有level-2链接指向href链接,level-1与header相似,但在某些情况下,我需要level-1链接来获取一些HTML内容。所以基本上,当你点击父菜单时,它会获取html内容,同时显示子菜单。手风琴菜单与父母的链接也指一些内容
以下是我的代码。当我点击1级链接时,在地址栏显示#号,这是因为在我的代码的第二行中,我将href值指定为#号。如果我删除了该值,那么它会转到我想要的页面并显示切换的菜单(级别2),但是级别2菜单很快就会消失。任何帮助表示赞赏。提前致谢。
$(document).ready(function() {
var submenu = $(location).attr('href').substring(url.lastIndexOf('/'), url.length);
var LinkObj = $('a[href*="' + submenu + '"]').parent();
$('.mainmenunav').find(LinkObj).parent().show();
SelLink = $('.mainmenunav').find(LinkObj).parent();
$('.level-1 > li > a').click(function(){
if (SelLink != null && SelLink.html() != $(this).next().html()){
SelLink.slideToggle(800);
}
$(this).next().slideToggle(400);
if (SelLink != null && SelLink.html() == $(this).next().html()){
SelLink = null;
}else{
SelLink = $(this).next();
}
});
});
的HTML视图:
<ul id="mainmenunav">
<li>Sport
<ul>
<li><a href="#">Football</a></li>
<li><a href="#">Tennis</a></li>
</ul>
</li>
<li><a href="#">News</a>
<ul>
<li><a href="#">Africa</a></li>
<li><a href="#">Asia</a></li>
</ul>
</li>
</ul>
当我点击1级链接,在地址栏则显示#号这是因为,在我的代码的第二行我有HREF值分配为#号。如果我删除了该值,那么它会转到我想要的页面并显示切换的菜单(级别2),但是级别2菜单很快就会消失。不要理解原因。
你是什么意思'加载页面'。该链接是否产生新的Http请求或XMLHttp请求。如果是Http,你为什么要滑动儿童物品。 – Yorgo 2012-04-02 09:23:26
我希望1级链接发出HTTP请求,同时显示2级链接。通过RemarkLima在下面给出的回复,链接转到需要的页面并显示子菜单,但子菜单再次快速关闭。 – Adia 2012-04-02 11:47:07
@Adia我明白你的意思了......当你加载一个新页面时,它总是会回复到“加载”状态,除非你把页面加载到一个iFrame或其他欺骗。我的偏好是检查页面加载的正确页面并相应地显示菜单。我将在下面编辑我的答案,向你展示我的意思。 – RemarkLima 2012-04-02 15:07:33