2

我有带有动作的剑道菜单:

@(Html.Kendo().Menu().Name("menu")
.Items(it => {                                       
       it.Add().Text("Item1").Items(subit => {
                subit.Add().Text("subitem1).Action("Contracts", "Home");
                subit.Add().Text("subitem2").Action("Contracts", "Home",
                                                       new { flag = true });
 });
 })
)

我的问题是,每当我选择subitem1subitem2项目都被选中(将类.k-state-selected添加到这两个项目中)。我想这是因为我有相同的控制器操作。我不想为subitem2. 有什么解决方法吗?

非常感谢!

4

1 回答 1

0

如果这行得通,我不是,因为我没有剑道库,而且我似乎无法在http://dojo.telerik.com/上正确测试它,但基本上

在子菜单打开之前触发。

$("#menu").kendoMenu({
     open: function(e) {
           if (location.search != "") {
               $('#menu #item a:first').removeClass('.k-state-selected');
        }
     }
 }); 

然后它会根据location.search查看 url 是否具有属性,如果有,那么它会从菜单第一个菜单项中删除 kendo 类,这不是传递任何东西的菜单项。

我不确定 kendo 是如何构建它的物品的,但您可能还想看看 on activate 是否会更好

当子菜单打开且动画完成时触发。

$("#menu").kendoMenu({
     activate: function(e) {
         // handle event
     }
});
于 2015-04-17T13:40:38.780 回答