我发现了三层菜单系统的一些很棒的代码,并且想要进行一些更改,但无法理解如何完成它。需要第一层和第二层菜单并将鼠标悬停在点击第三层时
有没有人有任何想法,我希望改变代码,以便当用户点击第三层菜单选项(em)时,第二(i)和第一层(b)菜单将保留悬停状态。目前,当用户点击第三层选项时,第二层消失,第一层悬停被删除。我在想,我需要为第三层元素提供.click功能,但我并不确定。我jQuery是在开发阶段:)
我的js文件如下:
$(document).ready(function(){
closetimer = 0;
$("#navMenu b").mouseover(function() {
clearTimeout(closetimer);
if ($(this).hasClass('hover')) {
$("#navMenu ul ul ul:visible").slideUp(500);
$("#navMenu em").removeClass("hover");
$("#navMenu ul ul:visible").slideUp(500);
$("#navMenu i").removeClass("hover");
$(this).parent().next().fadeOut("slow");
$(this).removeClass("hover");
}
else {
$("#navMenu b").removeClass();
$(this).addClass("hover");
$("#navMenu ul ul ul:visible").slideUp(500);
$("#navMenu em").removeClass("hover");
$("#navMenu ul ul:visible").slideUp(500);
$("#navMenu i").removeClass("hover");
$("#navMenu ul:visible").fadeOut("slow");
$(this).parent().next().fadeIn("slow");
}
return false;
});
$("#navMenu i").mouseover(function() {
clearTimeout(closetimer);
if ($(this).hasClass('hover')) {
$("#navMenu ul ul ul:visible").slideUp(500);
$("#navMenu em").removeClass("hover");
$(this).parent().next().slideUp(500);
$(this).removeClass("hover");
}
else {
$("#navMenu i").removeClass();
$(this).addClass("hover");
$("#navMenu ul ul ul:visible").slideUp(500);
$("#navMenu em").removeClass("hover");
$("#navMenu ul ul:visible").slideUp(500);
$(this).parent().next().slideDown(500);
}
return false;
});
$("#navMenu em").mouseover(function() {
clearTimeout(closetimer);
if ($(this).hasClass('hover')) {
$(this).parent().next().fadeOut("slow");
$(this).removeClass("hover");
}
else {
$("#navMenu em").removeClass();
$(this).addClass("hover");
$("#navMenu ul ul ul:visible").fadeOut("slow");
$(this).parent().next().fadeIn("slow");
}
return false;
});
$("#navMenu").mouseover(function() {
clearTimeout(closetimer);
});
$("#navMenu").mouseout(function() {
closetimer = window.setTimeout(function(){
$("#navMenu ul ul ul:visible").fadeOut("slow");
$("#navMenu em").removeClass("hover");
//$("#navMenu ul ul:visible").slideUp(500);
//$("#navMenu i").removeClass("hover");
}, 2000);
});
$("#navMenu em").click(function() {
$("#navMenu ul ul ul:visible").fadeOut("slow");
$(this).parent().next().fadeIn("slow");
$(this).parent().addClass("hover");
});
}); //end DOM
遇到了麻烦张贴我的HTML。让我知道你是否需要它。
谢谢任何能够让我朝着正确方向前进的人。我很想了解我无法想象的东西!
金达赫拉很难跟踪没有标记来帮助理解它。一个海量代码块的位可以在没有评论的情况下进行消化。如果您的HTML格式不正确,可能是因为您没有选择它并单击工具栏上的“代码”按钮将其格式化为代码块。 – lsuarez 2011-05-16 15:42:41
我没有可见的工具栏。我想包括我的HTML和CSS,因为它可能是解决我的问题的关键。有关如何“查找”此工具栏的任何想法?简单的事情让我陷入沉迷...... – Leslie 2011-05-17 15:21:58