我花了几个小时来解决这个问题,但我没有成功。我是第一次开发asp菜单。一切都很好,但是当我将菜单项悬停时,.highlighted css 类会动态添加到相应的元素中。这是我的代码:
<asp:Menu ID="Menu1" runat="server" StaticDisplayLevels="1" StaticSubMenuIndent="10" Orientation="horizontal" RenderingMode="List" CssClass="MenuClass">
<Items>
<asp:MenuItem Text="Dashboard" Target="" Value="Dashboard">
<asp:MenuItem Text="Tasks" Value="Tasks"></asp:MenuItem>
<asp:MenuItem Text="Call Backs" Value="Call Backs"></asp:MenuItem>
</asp:MenuItem>
<asp:MenuItem Text="Application" Value="Application">
<asp:MenuItem Text="New" Value="New"></asp:MenuItem>
<asp:MenuItem Text="View" Value="View"></asp:MenuItem>
</asp:MenuItem>
</Items>
</asp:Menu>
网页中的这个asp:menu呈现为 UL(无序列表)和 LI(列表)。
对于上述代码,网页中呈现的html格式如下:
<div class="MenuClass" id="Menu1" >
<ul class="level1 static" role="menubar" >
<li class="has-popup static" role="menuitem" >
<a class="popout level1 static" href="#">Dashboard</a>
<ul class="level2 dynamic" style="display:none">
corresponding lists: TASKS and CALLBACKS
</ul>
</li>
</ul>
Viceversa the ul and li for the Application MENUITEM are rendered as html
</div>
在这我需要的是,当我悬停菜单仪表板时,将显示子菜单项任务和回调,因为具有类level2 动态的 UL 的样式更改为display:block。同时,一个名为highlight的类被动态添加到标签中,类名称变为 class="popout level1 static highlight"并且也由 asp:menu 功能自动添加。当鼠标离开仪表板菜单时,添加的突出显示的类将被动态自动删除。我不知道如何将突出显示的类添加到tag中。我的问题是停止添加突出显示的类动态放入标签中,因为我需要将level2中对应ul标签的样式保持为display:block。
添加高亮类后,类名* level2 dynamic * 的ul 样式变为display:block。但是当鼠标离开菜单时,它变成了 display:none。
在我的项目中,我必须将所选菜单及其子菜单保留为 display:block,直到单击另一个菜单。
我使用 JQUERY 使子菜单显示:选定菜单的块。
我需要知道如何停止或防止将突出显示的类添加到 a 标签。我想我们可以通过jquery来实现。
$(document).ready(function () {
if ($(".popout").hasClass("selected")) {
$("a.popout.level1.selected.static").next("ul").css("display", "block");
}
if ($(".popout").hasClass("highlighted")) {
$("a.popout.level1.selected.static.highlighted").next("ul").css("display","block");
}
$("a.popout.level1.selected.static.hihglighted").mouseout(function () {
$("a.popout.level1.selected.static.highlighted").next("ul").css("display", "block");
$("a.popout.level1.selected.static").next("ul").css("display","block");
if ($("a.popout.level1.selected.static.highlighted").next("ul").css("display", "none")) {
$(".test").css("display", "block");
}
});
});
在这里,当鼠标离开菜单时,突出显示的类动态删除 ul 的 css 自动显示为 display:none,即使我将它设置为 display:block 它也无法被阻止。它显示无。因此,添加突出显示的类是这种情况下的担忧。
所以我必须停止将突出显示的类添加到锚标记,这样样式就不会改变。
添加突出显示的类没有任何顾虑,但如果它删除,ul 样式将变为 display:none。不知道为什么……?
请帮我解决这些问题..
提前致谢...:)