2013-10-15 73 views
4

當前希望在我們的Asp.Net站點中實現移動菜單系統mmenuhttp://mmenu.frebsite.nl/)。mmenu菜單系統不能在.Net窗體標籤內工作

只要在表單標籤之外,在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 = 「服務器」)我得到一個jQuery的錯誤。因爲某些菜單項將來自數據庫,所以需要在內。

乾杯 西蒙

+0

什麼是錯誤?你是否認爲asp.net在標記爲'runat =「server」'時修改元素'id'的事實? –

回答

4

Mmenu做兩件事情,當它被初始化。首先,它將<body>的innerHTML與<div class="mmenu-page">容器包裝在一起,然後刪除菜單的<nav>,並在<body>和DOM中的新頁面容器之間移動它們。

無論出於何種原因,它都將ASP.Net包裝爲<form>標籤,例如<body>標籤,但僅限於它作爲<body>的第一個子標籤出現。在這種情況下,它會在結束<form>標記後立即插入<div>

如果您將ASP.Net <form>標記替換爲空<div>,mmenu將能夠正確定位它的<div class="mmenu-page">,並且所有東西都可以神奇地工作。

你會想你的代碼aspx頁面看起來像這樣:

<body> 
<div> 
    <form id="form1" runat="server"> 
    ... 
    <nav> ...mobile menu... </nav> 
    </form> 
</div> 
<body> 
0

的空div包裹身體沒有爲我工作。我發現在GitHub上後,偉大的工作:

$('#search-copy').mmenu({ 
    // options 
}, { 
    // config 
    offCanvas: { 
     menuWrapperSelector: "#aspnetForm", 
     pageNodetype: "form", 
     pageSelector: "body > form" 
    } 
}); 

以下是原帖:

https://github.com/FrDH/jQuery.mmenu/issues/426

您可能需要擺弄你的選擇。我最終使用了pageSelector的ID和menuWrapperSelector的通用選擇器。

隨着mmenu,我發現有很多隱藏的配置和選項設置。一些在mmenu文檔中,一些在OffCanvas文檔中。看起來像配置/選項設置將做你想要的任何東西,而無需編寫大量的自定義CSS。