这似乎是一个常见问题,但我无法调整以前给出的答案,我的情况。我有一个jQuery垂直手风琴菜单,我想用它来浏览两个网站,home.html和research.html。这里是我的home.html的相关部分的样子:保持jquery菜单打开后点击
<div id="cssmenu">
<ul>
<li class='active'><a href='index.html'>Home</a></li>
<li><a href='research.html'>Research</a>
<ul>
<li><a href='research.html#r1'><span>interests</span></a></li>
<li><a href='research.html#r2'><span>preprints</span></a></li>
<li><a href='research.html#r3'><span>publications</span></a></li>
<li><a href='research.html#r4'><span>coauthors</span></a></li>
</ul>
</li>
</ul>
这里是我的research.html的相关部分的样子:
<div id="cssmenu">
<ul>
<li><a href='index.html'>Home</a></li>
<li class='active'><a href='research.html'>Research</a>
<ul>
<li><a href='research.html#r1'><span>interests</span></a></li>
<li><a href='research.html#r2'><span>preprints</span></a></li>
<li><a href='research.html#r3'><span>publications</span></a></li>
<li><a href='research.html#r4'><span>coauthors</span></a></li>
</ul>
</li>
</ul>
和这里的“my”jquery-code
$(document).ready(function(){
$('#cssmenu > ul > li ul').each(function(index, e){
var count = $(e).find('li').length;
var content = '<span class="cnt">' + '</span>';
$(e).closest('li').children('a').append(content);
});
$('#cssmenu > ul > li > a').click(function() {
$('#cssmenu li').removeClass('active');
$(this).closest('li').addClass('active');
var checkElement = $(this).next();
if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
$('#cssmenu ul ul:visible').slideUp('normal');
checkElement.slideDown('normal');
}
if($(this).closest('li').find('ul').children().length == 0) {
return true;
} else {
return false;
}
});
如果我点击Research,子菜单就会打开,如果我点击子菜单项,页面上的相应位置就会被加载。但是,之前打开的子菜单现在再次关闭。我怎样才能避免这种行为?
任何帮助非常感谢,但请记住,我不是一个网络程序员。
您可以创建一个代码片段? –
我会尝试,从来没有这样做。 – Quasiholomorph
可能的重复:http://stackoverflow.com/questions/6918843/jquery-accordion-parent-link – Jay