我目前希望在我们的 Asp.Net 站点中实现移动菜单系统 mmenu ( http://mmenu.frebsite.nl/ )。
在 HTML 页面和母版页上都能很好地工作,只要它在表单标签之外。当我把它放在表单标签中时,它不再起作用。
这是菜单的 HTML:
<nav id="menu">
<ul>
<li><a href="page.html">The page</a></li>
<li><a href="mainmenu.html">The mainmenu</a></li>
<li><a href="submenus.html">Submenus</a></li>
<li><a href="labels.html">Labels</a></li>
<li><a href="counters.html">Counters</a></li
<li><a href="selected.html">Selected item</a></li>
<li><a href="openmenu.html">Open the menu</a></li>
<li><a href="closemenu.html">Close the menu</a></li>
</ul>
</nav>
这运行良好:
<script type="text/javascript">
$(function () {
$('nav#menu').mmenu({
zposition: "next",
position: "top"
});
});
</script>
但是,如果我将它放在表单标记中(表单 id="MainForm"runat="server"),我会收到 jquery 错误。需要在其中,因为某些菜单项将来自数据库。
干杯
西蒙
最佳答案
Mmenu 在初始化时会做两件事。首先,它用 <body>
容器包装 <div class="mmenu-page">
的 innerHTML,然后它切出菜单的 <nav>
并将它们在 <body>
和 DOM 中的新页面容器之间移动。
无论出于何种原因,它将 ASP.Net 包装 <form>
标记视为 <body>
标记,但前提是它作为 <body>
的第一个子项出现。在这种情况下,它会在关闭 <div>
标记之后立即插入它的包装 <form>
。
如果你用空的 <form>
包装你的 ASP.Net <div>
标签,mmenu 将能够正确定位它的 <div class="mmenu-page">
并且一切都神奇地工作。
你会希望你的代码 aspx 页面看起来像这样:
<body>
<div>
<form id="form1" runat="server">
...
<nav> ...mobile menu... </nav>
</form>
</div>
<body>
关于c# - mmenu 菜单系统在 .Net 表单标签中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19382424/