2010-11-24 2 views
4

Je veux exécuter une fonction javascript simple sur chaque MenuItem d'un menu asp:.Fonction javascript courante chaque MenuItem de Asp: Menu

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

Si j'ajoute l'attribut sur Page_Init _mainMenu.Attributes.Add("onclick", "javascript:jsFunction();") je reçois événement onclick seulement sur une table qui décrit le menu pas sur chaque MenuItem qui sont des liens vers d'autres pages.

Répondre

4

d'abord ajouter la classe CSS au menu:

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

Ensuite, vous pouvez utiliser ce code jQuery pour gérer l'événement clic de tous les liens à l'intérieur:

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

L'exemple ci-dessus montre alerte avec le lien href quand il est cliqué, vous pouvez faire ce que vous voulez à la place. Il va également annuler le lien, il suffit de supprimer le "return false"; ligne pour avoir le lien rediriger comme d'habitude.

+0

+1. Ça m'a aidé. pouvez-vous dire comment afficher une alerte en cliquant sur les éléments de sous-menu? – Pankaj

+0

@Pankaj le code devrait montrer l'alerte tel quel. Vous obtenez une erreur? –

+0

En fait, cela fonctionne bien pour le menu de niveau supérieur. Mais ne montre pas de message lorsque vous cliquez sur le sous-menu. – Pankaj