1

私は剣道UIメニューを持っています:

 @(Html.Kendo().Menu()
                .Name("menu")
                .Items(menu =>
                {
                    menu.Add().Text("About").Action("Index", "Home");
}))

アクションで新しいページをロードする代わりに、JavaScript 関数 onclick を呼び出したいと思います。これどうやってするの?HtmlAttributes プロパティを使用する必要がありますか?

さらに、アクション以外のメニュー項目のテキストが白で、アクション メニュー項目のテキストがオレンジ色の月光テーマを使用しています。javascript 関数を呼び出すメニュー項目の場合、これをオレンジ色のテキストとして保持するにはどうすればよいですか? スタイルを設定することによって、または別の方法はありますか?

私のサンプル コードはhttp://www.eeedee.comにあります。

ありがとう

4

4 に答える 4

3

あなたはandrewdudek84答えを扱うことができます(その方法は本当に素晴らしいです)。

さらに2つの解決策があります(ハッキングの方法):

解決策 1

@(Html.Kendo().Menu()
    .Name("menu")
    .Items(menu =>
    {
        menu.Add().Text("About").Url("javascript:void(0)")
        .HtmlAttributes(new { 
            @class= "helloWorld"
        });
}))
<script>
$('.helloWorld').click(function(){
    //put your code here
});
</script>

解決策 2

@(Html.Kendo().Menu()
    .Name("menu")
    .Items(menu =>
    {
        menu.Add().Text("About").Action("Index", "Home")
        .HtmlAttributes(new { 
            @class= "helloWorld"
        });
}))

<script>
$('.helloWorld').click(function(e){
    e.preventDefault(); // Cancel the default action of your click.
    //put your code here    
});
</script>
于 2013-02-20T08:11:02.583 に答える
1

私は次のようなことを提案します:

<ul id="menu">
    <li id="menuItem1">Menu Item 1</li>
</ul>

<script type="text/javascript">
    $(document).ready(function() {
        $("#menu").kendoMenu({
            select: menuItemSelect,
            theme: "Moonlight"
        });
    });

    function menuItemSelect(e){
        alert(e.item.id);
    }
</script>
于 2013-02-19T20:53:39.640 に答える
1

「LinkHtmlAttributes」を使用して、生成されたリンクに属性を追加することもできます。

@(Html.Kendo().Menu()
                .Name("menu")
                .Items(menu =>
                {
                    menu.Add()
                        .Text("About")
                        .Action("Index", "Home")
                        .LinkHtmlAttributes(new { id = "myLink", onclick = "return OnMyLinkClick();" });
                }))
于 2013-08-07T11:02:31.000 に答える
0

少し話題から外れますが、メニューからアクションメソッドを呼び出したいが、ターゲットページを新しいタブで開いている人のために...

@(Html.Kendo().Menu()
.Name("menu")
.Items(menu =>
{
    menu.Add()
        .Text("About")
        .Action("Index", "Home")
        .LinkHtmlAttributes(new { target = "_blank" });
}))  
于 2014-07-11T06:00:14.847 に答える