2010-11-24 5 views
4

Ich möchte eine einfache Javascript-Funktion auf jedem MenuItem von einem asp: Menü ausführen.läuft JavaScript-Funktion jedes MenuItem von Asp: Menü

<asp:Menu ID="_mainMenu" runat="server" ClientIDMode="Static" EnableTheming="False" 
StaticBottomSeparatorImageUrl="~/Images/menuSeparator.gif" Orientation="Horizontal" 
RenderingMode="Table" OnMenuItemClick="_menu_MenuItemClick" SkipLinkText=""> 
</asp:Menu> 

Wenn ich das Attribut auf Page_Init _mainMenu.Attributes.Add("onclick", "javascript:jsFunction();") Gelangen ich Onclick-Ereignis nur auf einem Tisch, die das Menü nicht auf jeder MenuItem beschreibt, die Links zu anderen Seiten sind.

Antwort

4

Erste CSS-Klasse zum Menü hinzufügen:

<asp:Menu ID="_mainMenu" runat="server" CssClass="MyMenu" ... 

Dann können Sie diesen jQuery-Code verwenden, um das Click-Ereignis aller Links innen zu handhaben:

<script type="text/javascript"> 
$(function() { 
    $(".MyMenu a").each(function(index) { 
     $(this).click(function() { 
      alert($(this).attr("href")); 
      return false; 
     }); 
    }); 
}); 
</script> 

Das obige Beispiel Alarm zeigt mit Wenn Sie auf den Link href klicken, können Sie stattdessen das tun, was Sie möchten. Es wird auch die Verbindung abbrechen, entfernen Sie einfach die "Rückkehr falsch;" Linie, um den Link wie gewohnt umleiten zu lassen.

+0

+1. Es hat mir geholfen. kannst du sagen, wie man beim Klicken auf Untermenüpunkte Alarm schlägt? – Pankaj

+0

@Pankaj sollte der Code Alert-as-is anzeigen. Sie erhalten einen Fehler? –

+0

Eigentlich funktioniert es gut für Top-Level-Menü. Zeigt beim Klicken auf das Untermenü keine Meldung an. – Pankaj