0

我正在尝试通过 ajax 调用创建子菜单,将父元素作为参数发送,以获取打开事件中的子菜单项,但无法正常工作。

有谁知道如何做到这一点?

谢谢

4

2 回答 2

0

菜单的append 方法采用您要附加的项目列表和目标(默认为 root)。因此,我假设您的 ajax 参考您正在从服务器/数据库中获取子菜单。因此,将其转换为数组并将其传入:

$.ajax({ 
    type: "POST",
    ... etc.
    success: function (menuData) {
       ... compose your submenu
       var menu = $("#menu").kendoMenu().data("kendoMenu");
       menu.append(submenuarray, $("#targetMenuItem"));
    ...
});

这是一个没有数据库部分的简化DOJO 示例。

如果您希望在打开菜单时发生这种情况,请添加Open 事件

于 2018-04-18T19:05:26.863 回答
0

您可以使用 append 方法,例如

menu.append({text: submenu}, parentMenu);

在哪里

  1. parentMenu > 是您要附加的目标,我们需要将其作为参数从选择事件传递
  2. submenu > 是子菜单文本/字符串

我自己试过了,这是例子

对示例的一些解释:

  1. 获取 e.item 并将其存储/传递给函数,稍后将用作我们要附加的目标
  2. 进行ajax调用,然后在收到响应后,只需循环子菜单并将其添加到父菜单

ps:还有1个问题,如果你选择两次菜单会追加两次子菜单,你需要处理这个问题

于 2018-04-25T05:36:57.993 回答