2010-11-24 17 views
4

asp:menuから各MenuItemで簡単なjavascript関数を実行したいとします。asp:Menuから各MenuItemをjavascript関数で実行する

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

私はPage_Init _mainMenu.Attributes.Add("onclick", "javascript:jsFunction();")に属性を追加した場合、私は唯一の他のページへのリンクがそれぞれのMenuItemのメニューを説明していないテーブルの上のonclickイベントを取得します。

答えて

4

まず、メニューにCSSクラスを追加します。

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

次にあなたが内部のすべてのリンクのクリックイベントを処理するために、このjQueryのコードを使用することができます。

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

を上記の例では、との警告が表示されますそれがクリックされたときのリンクhrefは、あなたが望むものを何でもすることができます。また、リンクをキャンセルするだけで、 "偽を返す"リンクを通常どおりリダイレクトします。

+0

+1。それは私を助けた。あなたはサブメニュー項目をクリックすると警告を表示する方法を教えてください。 – Pankaj

+0

@Pankajコードには現状のままアラートが表示されるはずです。あなたはエラーになる? –

+0

実際には、トップレベルのメニューでうまく動作します。しかし、サブメニューをクリックするとメッセージが表示されません。 – Pankaj

関連する問題