我目前希望在我们的 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/

10-13 06:45