我遇到菜单和切换子菜单的活动项目时出现问题: 当我点击“Prensa”或“Contacto”时,脚本将活动井添加到菜单项。例如“Prensa”获得主动,如果我点击“Contacto”,它会主动将其从“Prensa”中删除。菜单 - 在ajax加载内容上的子菜单和活动链接
问题是,当我点击“艺术作品”它得到的是主动类,但也从它的子菜单的所有链接。此外,如果我再次点击“Prensa”,“艺术品”的子菜单保持打开状态,“艺术品”的所有链接仍然会获得活动课程(也是“艺术品”链接本身)。
另一个问题是,当我点击一个子菜单项时,它只添加一个“类”而没有其他任何东西,所以我不能添加CSS来使其处于活动状态。
这是我的标记:
<ul id="menu" class="menu">
<li id="artworks"><a href="#">ARTWORK</a>
<ul class="submenu">
<img src="../img/submenu.png" alt="submenu" width="62" height="1" />
<li><a href="#" id="sweetlife">Sweet Life</a></li>
<li><a href="#">Pleasure</a></li>
<li><a href="#">Bienal de la habana</a></li>
<li><a href="#">Estudios de craneos</a></li>
</ul>
</li>
<li id="prensa_nav"><a href="#">PRENSA</a></li>
<li id="contacto_nav"><a href="#">CONTACTO</a></li>
</ul>
这是我的JS:
// active menu item
$(function() {
$('#menu li').click(function() {
$('#menu li').each(function() {
$(this).removeClass('active');
});
$(this).addClass('active');
});
});
/* Menu dropdown */
$(document).ready(function($){
// Add class of drop if item has sub-menu
$('ul.submenu').closest('li').addClass('drop');
// Left Sidebar Main Navigation
var menu_ul = $('.menu > li.drop > ul'),
menu_a = $('.menu > li.drop > a');
menu_ul.hide()
menu_a.click(function(e) {
e.preventDefault();
if(!$(this).hasClass('active')) {
menu_a.removeClass('active');
menu_ul.filter(':visible').slideUp('normal');
$(this).addClass('active').next().stop(true,true).slideDown('normal');
} else {
$(this).removeClass('active');
$(this).next().stop(true,true).slideUp('normal');
}
});
});
有人可以帮我解决这些问题?
谢谢,它可以在小提琴上工作,但是当我将它添加到我的loader.js中时,它会在代码的最后一行出现“Unexpected token ILLEGAL”。看起来不错,但仍然有问题,子菜单始终保持打开状态:( – codek
)当您点击另一个菜单时,您希望子菜单关闭吗?我重写了一下您的代码: http://jsfiddle.net/willemvb/q96FK/4/ –
哇,真令人难以置信,那固定了我所有的问题哈哈。非常感谢你!!! – codek