我自叹逍遥 2015-10-31 06:14 采纳率: 75%
浏览 6464
已采纳

关于easyUI 左侧菜单栏的问题

 $(function() {

    $.ajax({
        async : false,
        url : getRootPath() + '/getPower.action',
        type : 'post',
        dataType : 'JSON',
        success : function(data) {
            addNav(data);
        }
    });

    // 导航菜单绑定初始化
    $("#menu").accordion({ // 初始化accordion
        title : '导航菜单',
        fit : true,
        border : true,
        animate : true
    });
    });

    function addNav(data) {
    $('#menu').accordion();

    $.each(data, function(i, m) {
        var menulist = '';
        var mid = m.id;
        menulist += '<ul>';
        menulist += '<div id = "tree' + mid + '" ></div>';
        menulist += '</ul>';
        console.info(menulist);

        $('#menu').accordion('add', {
            title : m.text,
            content : "<ul id='tree"+mid+"' ></ul>",
            iconCls : 'icon ' + 'icon-sys',
            selected : true,
            collapsible : true
        });

        $.parser.parse();

        addTree(mid, m.children);

    });
    }

    function addTree(mid, menus) {

    $("#tree"+ mid).tree(
            {

                data : menus,
                type : 'json',
                animate : true,

                onSelect : function(node) {
                    node.state == 'closed' ? $(this)
                            .tree('expand', node.target) : $(this).tree(
                            'collapse', node.target);
                },

                onClick : function(node) {
                    if ($('#' + mid).tree('isLeaf', node.target)) {
                        addTab(node.text, node.url, node.icon);
                    }
                }
            });
}

这样写有什么问题吗,为什么加载出来第一级的菜单有,但是往下的tree就出不来了,试了半天找不出原因,请各位前辈帮我看看

  • 写回答

1条回答 默认 最新

  • save4me 2015-10-31 13:38
    关注

    你的代码中有

    menulist += '<div id = "tree' + mid + '" ></div>';
    

    又有

    content : "<ul id='tree"+mid+"' ></ul>",
    

    一个页面里面会出现id相同的元素,会导致冲突。是不是写错了?因为你下面的点击事件中代码里面取的节点id是$('#' + mid),但是在之前的代码里面并没有创建'#' + mid这样id的节点。
    还有一个问题是

            menulist += '<ul>';
            menulist += '<div id = "tree' + mid + '" ></div>';
            menulist += '</ul>';
    

    在ul标签里面对用的是li元素,你使用的是div,不符合规范。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名