我试图让手风琴菜单按照我喜欢的方式行事,并且它不会回应我对合规性的声音请求。
我希望按照以下规则行事:
如果没有子菜单,请转到已设置的链接。
如果有子菜单,请将其展开,然后设置下一步。
如果 IS 一个子菜单,并且 HAS 已展开,则点击该标题将转到相应的链接。
手风琴部分工作正常,但'一旦展开,再点击'链接部分则没有。任何提示和/或指示都将非常受欢迎。
我正在使用的代码如下。
function initMenus() {
$('ul#treeview ul').hide();
$.each($('ul#treeview'), function(){
$('#' + this.id + '.expandfirst ul:first').show();
});
$('ul#treeview li a').click(
function() {
var checkElement = $(this).next();
var parent = this.parentNode.parentNode.id;
if($('#' + parent).hasClass('noaccordion')) {
$(this).next().slideToggle('normal');
return false;
}
if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
if($('#' + parent).hasClass('collapsible')) {
$('#' + parent + ' ul:visible').slideUp('normal');
}
return false;
}
if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
$('#' + parent + ' ul:visible').slideUp('normal');
checkElement.slideDown('normal');
return false;
}
}
);
}
$(document).ready(function() {initMenus();});
答案 0 :(得分:1)
确保您的点击事件到达该功能的结尾,并且在没有要展开的子项时不返回false。返回false会阻止href被访问。