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

关于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
    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,不符合规范。

    点赞 评论

相关推荐