2013-07-01 89 views
0

我花了數小時解決這個問題,但我沒有成功。我正在第一次開發asp菜單。一切都很好,但是當我將鼠標懸停在菜單項.highlighted上時,css類會動態地添加到相應的元素中。 這裏是我的代碼:如何防止元素在asp菜單中動態添加類?

<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:在它呈現爲UL(無序列表)和李(列表)的網頁菜單

上面的代碼在網頁中呈現的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> 

在此我需要的是,當我將鼠標懸停在菜單儀表板子的菜單項任務和回調將會顯示,因爲風格爲UL 級別2動態更改爲顯示:塊。 與此同時,一個名爲類突出被dymanically加入標籤和類名變成類=由ASP「彈出式視窗1級突出靜態」,而且還會自動:菜單功能。 當鼠標離開Dashboard菜單時,動態和自動刪除添加的突出顯示的類。 我不知道如何將突出顯示的類添加到標籤中。 我的問題是停止添加高亮類動態到標籤,因爲我需要保留level2中相應的ul標籤的樣式爲display:block。

添加高亮級別時,類名爲* level2 dynamic * 的ul的樣式更改爲display:block。但是當鼠標離開菜單時,它變成顯示:無。

在我的項目中,我必須將所選菜單及其子菜單保持爲顯示:block,直到單擊另一個菜單。

我已經使用JQUERY使子菜單顯示:所選菜單的塊。

我需要知道如何停止或防止將突出顯示的類添加到標記。 我認爲我們可以通過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自動獲取爲顯示:沒有,即使我已經將其設置爲顯示:塊失敗是塊。它沒有顯示。所以突出課堂的增加是這種情況下的擔心。

因此,我不得不停止在定位標記中加入突出顯示的類,以便樣式不會改變。

突出顯示的類的添加沒有任何顧慮,但是如果刪除,ul樣式將變爲display:none。我不知道爲什麼......?

請幫我在這些問題上..提前

謝謝... :)

+1

試圖找到這個地方類被添加/刪除,而不是搜索'種解決方法'...但是,對不起,我不知道ASP –

+0

@roasted感謝您的快速回復。我正在與Jquery合作,我需要的是如何停止突出顯示的類的添加。有什麼想法...?在此先感謝... :) – RajeshKannan

+0

@ user2309770:您需要顯示您的jQuery代碼。 – defau1t

回答

0

我已經這樣做了簡單的動畫與代碼:

 $("ul.level1 li a").mouseenter(function() { 
      var ulhight = $(this).next("ul").height(); 
      $(this).next("ul").css({ "height": "0px", "overflow": "hidden" }); 
      $(this).next("ul").animate({ height: ulhight }, 300) 
     })